本文主要实现的是 jenkins + svn + maven +springboot 自动化部署。。。
一、jenkins安装
上篇文章已经介绍过了,点击查看
补充一下:linux 下maven安装:https://blog.csdn.net/qq_28410283/article/details/81837151
二、具体步骤
参考博客:
https://blog.csdn.net/zjh_746140129/article/details/80904876
1、安装插件
1.1、maven插件
Maven Integration
1.2、svn插件
https://blog.csdn.net/zjh_746140129/article/details/80917791
1.3 、Publish Over插件
如果需要将web项目发布到tomcat下,还需要安装Deploy Plugin插件。
2、jdk、maven、svn全局配置
去掉自动安装
3、新建maven项目,并配置项目
进入项目配置,步骤依次如下:
源码管理:
配置打包指令:clean install -Dmaven.test.skip -U
设置构建脚本
Jenkins会将代码从你配置的svn上down下来,然后copy到指定执行的文件夹内,然后执行启动,shell脚本:
#!/bin/bash
#export BUILD_ID=dontKillMe这一句很重要,这样指定了,项目启动之后才不会被Jenkins杀掉。 export BUILD_ID=dontKillMe
#指定最后编译好的jar存放的位置 www_path=/home/springboot
#Jenkins中编译好的jar位置 jar_path=/var/lib/jenkins/workspace/DevProject1/paymentCounter/target/
#Jenkins中编译好的jar名称 jar_name=paymentCounter.jar
#获取运行编译好的进程ID,便于我们在重新部署项目的时候先杀掉以前的进程 pid=$(cat /home/springboot/paymentCounter.pid)
#进入指定的编译好的jar的位置 cd ${jar_path}
#将编译好的jar复制到最后指定的位置 cp ${jar_path}/${jar_name} ${www_path}
#进入最后指定存放jar的位置 cd ${www_path}
#杀掉以前可能启动的项目进程 kill -9 ${pid}
echo "清除之前的进程已完成..."
#启动jar,指定SpringBoot的profiles为test,后台启动 #java -jar -Dspring.profiles.active=test ${jar_name} & nohup java -jar ${jar_name} &
#将进程ID存入到shaw-web.pid文件中 echo $! > /home/springboot/paymentCounter.pid
echo "当前web项目启动完成..."
4、立即构建
https://blog.csdn.net/pucao_cug/article/details/82531681
在开发中,往往svn服务器和jenkins服务器、部署服务器不在同一个服务器上,这时候需要远程部署项目,而Publish SSH这个插件就是实现远程部署,步骤如下:
https://blog.csdn.net/u011781521/article/details/80214746
a、配置ssh
b、创建任务,流程大致同上
有所区别的是,选择ssh
以下是我的shell脚本
c、点击构建,查看控制台日志
采坑记录:jar确实上传到服务器了,但是jar进程没有起成功。。。
参考博客:https://blog.csdn.net/ypp91zr/article/details/89049498
shell执行脚本:
#!/bin/bash echo "开始执行运行脚本" source ~/.bash_profile
#这一句很重要,这样指定了,项目启动之后才不会被Jenkins杀掉。 export BUILD_ID=dontKillMe #判断是否启动,杀死之前的进程 pid=`ps -ef | grep paymentCounter-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'` if [ -n "$pid" ] then echo "Service running" echo "stoping......" kill -9 $pid echo "stoping success" fi echo "授予当前用户权限" chmod 777 /home/springboot/paymentCounter-0.0.1-SNAPSHOT.jar ##jar运行 nohup java -jar 命令 nohup java -jar /home/springboot/paymentCounter-0.0.1-SNAPSHOT.jar & echo '执行构建完成'