首选得确定Jenkins的安装完整,还有插件的安装,除默认插件,此处必备插件:Publish Over SSH,SSH plugin,因为我源码在gitlab所以关于gitlab的插件我也安装了,看各自的情况选择安装。
然后到系统管理->系统设置->找到Publish over SSH,填写好需要发布的远程服务器信息
然后创建新任务,类型为maven
丢弃旧的构建看情况,选填
源码管理设置
构建命令
发送包到指定服务器
选择开始填写的服务器
参数描述:
Source files jar:包的相对路径
如:多模块依赖的-> server-api/target/server-api.jar
单体项目->/target/server-api.jar
Remove prefix:移除信息,除了jar之外的信息
Remote directory:部署路径,即你远程服务器的项目部署路径
Exec command:执行命令,此处注意,第一个先执行:source /etc/profile,否则jenkins会在发送完包后就杀死所有进程,也就是之后的命令也不会执行了,加上这句可以保障命令可以继续执行到完成,
命令意思就是 进入安装到目录,授权给命令脚本,执行脚本,脚本内容在下方
远程服务器项目执行脚本:
echo "Stopping SpringBoot Application"pid=`ps -ef | grep server-api.jar | grep -v grep | awk '{print $2}'`if [ -n "$pid" ]then kill -9 $pidfichmod 777 /webapp/demo_api/server-api.jarchmod 777 /webapp/demo_api/api_start.shnohup java -jar /webapp/demo_api/server-api.jar --spring.profiles.active=prod > /webapp/demo_api/demo_api.log 2>1&