jenkins部署spring boot跟以前部署到tomcat和 weblogic有点不一样,之前是已经有服务器在运行可以利用服务器的远程部署来完成,spring boot是内嵌服务器,所以需要通过jenkins的ssh插件将jar包发送到应用服务器,再通过linux脚本来启动服务器。
结构图例:
详细步骤:
第一步:先配置jenkins的ssh插件Publish Over SSH
系统管理---插件管理 ,安装ssh插件
配置如下:
remoto directory这个路径的意思是目标服务器上,你选取一个路径作为远程操作的跟路径,后续传输文件的路径都是相对于这个根路径来定位,以前就在这里碰到了这个坑,后来用/来表示。后面的路径就是按照实际填写。
第二步:创建maven项目
基本代码配置跟上篇的tomcat部署方式差不多,这里不再重复,有疑问可以翻阅上篇 jenkins+svn+ant+weblogic/tomcat持续化集成部署
这里打包方式是采用的maven来编译打包,配置如下
clean install -Dmaven.test.skip=true -Ptest
配置编译后ssh服务
附上使用的脚本
DATE=$(date +%Y%m%d)
export JAVA_HOME=/usr/jdk1.8
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
DIR=/usr/local/app/leaf6-epbd
JARFILE=leaf6-epbd-rest-1.0.jar
if [ ! -d $DIR/backup ];then
mkdir -p $DIR/backup
fi
cd $DIR
ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
mv $JARFILE backup/$JARFILE$DATE
mv -f /usr/local/jenkins-app/$JARFILE .
java -jar $JARFILE > out.log &
if [ $? = 0 ];then
sleep 30
tail -n 50 out.log
fi
cd backup/
ls -lt|wak 'NR>5{print $NF}'|xargs rm -rf
脚本大概意思讲解:
DIR是服务器部署文件夹
/usr/local/jenkins-app是接收到jar包的文件夹
先将服务器线程杀死,停止服务器
然后将原来的包备份到backup文件夹中
最后将传出到服务器的jar包放到部署文件夹中,启动服务
删除历史备份,最新的几个