该版本为2.121.1,其他版本会稍有不同,仅做参考

1.登录jenkins后,点击左上角“新建任务”。

2.填写任务名称,然后选择构建类型(一般是选择构建一个maven项目)

3.填写General模块下信息

(1).填写描述

(2).选择  丢弃旧的构建

4.填写源码管理模块下信息

(1).选择git或Subversion,看自己项目用的git或者svn (下面是svn的配置)

(2).Repository URL  :  项目svn的路径

Credentials : 如果有就随便选一个,没有就创建一个

其他的不用管,默认的就可以了

5.填写Build模块下信息

Root POM :pom.xml

Goals and options :clean install

6.填写Post Steps模块下信息

(1).选择 Run regardless of build result选项。

(2). 点击add post-build step,选择send files execute commands over SSH

Name : 发布的项目所在的服务器地址

Source files :shop-web/target/*.jar

Remove prefix :shop-web/target

Remote directory :/new-shop/

Exec command :chmod 777 /opt/new-shop/*.jar

(3).点击add server

Name : 发布的项目所在的服务器地址

Source files:  sh/node-*.sh

Remove prefix : sh

Remote directory : /new-shop/

Exec command :  chmod 777 /opt/new-shop/*.sh

(4). 点击 add post-build step,选择 execute shell script on remote host using ssh

SSH site : root@服务器地址:22

Command  :/opt/new-shop/node-app.sh stop

cd /opt/new-shop/

BUILD_ID=dontKillMe ;

nohup /opt/new-shop/node-app.sh start>nohup.out &

7.点击保存

然后再服务器里面new-shop(这个目录是存放项目jar包的目录)目录下创建node-app.sh文件,文件内容如下:

#!/bin/sh

# 函数名

f=$1

# get basepath in parament

current=$(dirname $0)

cd ${current}

# 获取应用全路径

function get_full_app_path(){

# statememnt app deployment path

app_deploy_path=$1

max_time=0

max_time_file=""

for FILE in $app_deploy_path/*.jar

do

modify_date=`date +%s -r ${FILE}`

if test $[$modify_date] -gt $[$max_time]

then

max_time=$modify_date

max_time_file=$FILE

fi

done

echo "$max_time_file"

}

# 获取应用名称

function get_app(){

# get app path

path=$1

app_path=$(get_full_app_path ${path})

echo "${app_path##*/}"

}

function stoped(){

# incoming directory

app_directoy=$1

# get app path

app=$(get_app $app_directoy)

if [ -z "${app}" ]; then

echo "no find app $app"

else

pid=`ps -ef | grep ${app} | grep -v grep | awk '{print $2}'`

if [ -n "${pid}" ]; then

kill -9 $pid

echo "stop OK"

else

echo "haven't app run"

fi

fi

}

function started(){

. /etc/profile

# incoming direcory

app_directoy=$1

#get app path

app_path=$(get_full_app_path ${app_directoy})

echo ${app_path}

chmod 777 ${app_path}

## JAVA_HOME/java ...

nohup /usr/local/services/jdk1.8.0_171/bin/java -Xms512m -Xmx512m -jar ${app_path} --spring.profiles.active=stest start &

}

case $f in

start)

echo "starting app"

started ${current}

;;

stop)

echo "stoping app"

stoped ${current}

;;

restart)

stoped ${current}

started ${current}

echo "restart"

;;

*)

echo "start [Release directory],stop [Release directory],restart [Release directory], deploy [Release directory] [project]"

;;

esac

需要修改 nohup /usr/local/services/jdk1.8.0_171/bin/java 改成自己服务器的jdk路径

Java项目构建打包规范,jenkins2.121.1构建java项目环境,一键打包发布相关推荐

  1. java实体类命名规范_java实现周易起名-java实体类起名规范

    Java中类的命名规范? java命名规范? Camel-Case(Camel-Case)是编写计算机程序时的一组命名规则(惯例). 程序员能够更轻松地与同行交流自己的代码,因此最好采用具有更好可读性 ...

  2. 一份我们团队Java开发的开发规范,参考了阿里巴巴Java开发手册终极版v1.3.0

    编程规约 For variable name, always use English with lowerCamelCase. space in comment: bad example: Sugge ...

  3. java.lang.Record:规范草案

    建议的Java记录的工作仍在继续. Brian Goetz 昨天在OpenJDK amber-spec-experts邮件列表上启动了三个新线程,其中两个专注于Java Records. 这两个面向记 ...

  4. 服务器全自动打包,懒到极致之怒撸一键打包发布系统

    一切得从上个版本的打包发布说起. 开发中本人负责了iOS包的版本发布工作.iOS打包:不就是选一下证书,再在Xcode上点几下按钮,IDE全都给你设置好流程了,有必要这么麻烦吗? 诚然,如果只是打包, ...

  5. day01--java基础编程:计算机基础知识 ,java语言概述,java开发环境搭建,eclipse概述,创建简单java项目,JDK JRE JVM的关系,java开发中的命名规范,编程风格

    1 Day01–Java开发环境+HelloWorld 1.1 计算机基础知识 资料下载网址:刘沛霞 18600949004 code.tarena.com.cn tarenacode code_20 ...

  6. 【Java 强化】代码规范、JavaBean、lombok、内省(Introspector)、commons 项目、注解详解

    Java 强化 代码规范(包.类.接口.方法.变量.常量名) 主板加载通信组件案例(知识点回顾) 面向接口编程 + 集合 + 匿名内部类 加载资源文件 + 反射 JavaBean 规范 Lombok ...

  7. java编码规范文档 下载_软件项目实训及课程设计指导——制定待开发项目中各种文档的规范...

    软件项目实训及课程设计指导--制定待开发项目中各种形式文档的规范 1.制定对课程设计项目开发过程中的规范性要求 (1)从"形式"到"内容"两个方面控制和要求开发 ...

  8. Java 项目的命名规范

    做开发的都知道,一个好的项目规范可以提高开发效率以及后期的维护.自己手上有个项目,里面规范很乱,自己在对它进行二次开发的时候很蛋疼,它没有相应的文档,公司给我的就只有一个项目源码,其中的关系还要自己去 ...

  9. 蒲公英java后台上传_Android apk 项目一键打包并上传到蒲公英的实现方法

    项目一键打包并上传到蒲公英 缘由:测试流程由 打包 找包准备上传 填写更新信息 然后上传 过于复杂 所以想要简化开发 阅读须知:需要读者了解如何在项目里面建立一个空的gradle plugin的过程, ...

最新文章

  1. windows8专业版安装sql2012
  2. list集合去重的三种方式
  3. TinyXML:一个优秀的C++ XML解析器
  4. Centos 下安装redmine及设置发送邮件功能
  5. 迁移学习 nlp_NLP的发展-第3部分-使用ULMFit进行迁移学习
  6. 2017.9.21 道路修建(noi2011) 思考记录
  7. linux malloc速度,性能 – memcpy()的速度受malloc()的不同方式的影响很大
  8. c++ thread(2.1)---join()
  9. ionic——性能优化【界面缓存清理】
  10. Access导入Sql 2008 R2 错误 0xc020801c
  11. XXL-JOB快速入门搭建
  12. Mysql Workbench SSL错误
  13. ESP8266 12F 点灯科技APP 控制两个舵机
  14. 盒子滚动到底部有偏差 js_干货丨JS 经典实例收集整理
  15. JavaScript(JS) string.italics( )
  16. lnnoDB:Attempted to open a previously opened tablespace. Previous tablespace mysql/innodb_index_stat
  17. ac86u格式化jffs_【新手教程】20180828 ASUS固件使用操作指引华硕AC86U
  18. Sfm方法过程及原理
  19. Java并发_cas、aqs
  20. 使用php让页面只能被百度gogole蜘蛛访问

热门文章

  1. 生命的礼赞,请记住我的名字,我叫科比-布莱恩特
  2. 做工程师不懂这七点,难怪你总是混不好
  3. 连续发表三篇核酸研究数据库文章
  4. 你的肠道菌群是遗传自你父母,还是后天环境塑造的?
  5. html接收model数据,QAbstractTableModel数据返回要显示的html代码
  6. R语言使用caret包的preProcess函数进行数据预处理:对所有的数据列进行SpatialSign变换(将数据投影到单位圆之内)、设置method参数为spatialSign
  7. pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动加和(rolling sum)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额加和
  8. R语言使用ggplot2包的快速可视化函数qplot绘制分组分组点图(带状图)实战
  9. pandas使用date_range函数按照指定的频率(freq)和指定的个数(periods)生成dataframe的时间格式数据列、基于dataframe的日期数据列生成日期索引
  10. R语言使用gt包和gtExtras包优雅地、漂亮地显示表格数据:使用gt包可视化表格数据,使其易于阅读和理解、使用gtExtras包添加一个图,显示表中某一列中的数字、并为类型数据添加图像符号标签