记录jenkins如何部署springboot项目(jar类型的)
一、首先需要先配置好jenkins的基本配置(jdk、maven……),可在系统管理——>>全局工具配置中进行配置。
配置ssh内容:
在系统管理-》系统设置里,找到Publish over SSH(需要安装Publish over SSH插件)
2、然后就是配置部署项目的东西了。
构建环境中勾选,代码构建的过程中会将日志打印出来
Post Steps 配置:
选择如下:
Transfer SetSource files:表示要上传的本地的war包及路径,可到工作空间去看
Remove prefix:表示要上传时要去除的文件夹。即仅仅上传war包
remote driectory:即表示运行时的路径,相当于把war包上传到这里了,这个很重要,跟上面构建后操作的Remote Directory是会合并到一起的,比如我上面构建后操作中配置的RemoteDirectory是/home/rhel7/Jenkins-in/tmp,然后这边远程服务器的Remote Directory配置的是/,那么war包传输过去路径是/home/rhel7/Jenkins-in/tmp目录。
exec commad:要运行的命令
配置Exec command:
cd /home/rhel7/Jenkins-in/ echo "Execute shell Start" sh stop.sh sh replace.sh echo "Execute shell Finish" chmod 777 /home/rhel7/Jenkins-in/startup.sh BUILD_ID=dontKillMe nohup /home/rhel7/Jenkins-in/startup.sh &
三个脚本为:
1. stop.sh
# stop.sh #!/bin/bash JARFILE=jenkins-demo-0.0.1-SNAPSHOT.jar cd /home/rhel7/Jenkins-in echo "Stopping SpringBoot Application" ls pid=`ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}'` if [ -n "$pid" ];then echo "kill -9 的 pid:"$pid kill -9 $pid fi echo "清除进程已完成"
2.replace.sh
#!/bin/bash
# 打包好的项目名称
JARFILE=jenkins-demo-0.0.1-SNAPSHOT.jar # 编译好的 jar存放地址 file_path=/home/rhel7/Jenkins-in/tmp # 将现有的 jar 备份后,将新的 jar 替换 file=/home/rhel7/Jenkins-in/jenkins-demo-0.0.1-SNAPSHOT.jar if [ -f "$file" ];then mv /home/rhel7/Jenkins-in/jenkins-demo-0.0.1-SNAPSHOT.jar /home/rhel7/Jenkins-in/backup/jenkins-demo-0.0.1-SNAPSHOT.jar.`date +%Y%m%d%H%M%S` fi cp $file_path/jenkins-demo-0.0.1-SNAPSHOT.jar /home/rhel7/Jenkins-in/ # 删除老旧的备份项目 cd /home/rhel7/Jenkins-in/backup ls -lt | awk 'NR>5{print $NF}' | xargs rm -rf
3.startup.sh
#!bin/bash export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64 echo ${JAVA_HOME} echo "授权当前用户" chmod 777 /home/rhel7/Jenkins-in/jenkins-demo-0.0.1-SNAPSHOT.jar echo "执行...." nohup ${JAVA_HOME}/bin/java -jar /home/rhel7/Jenkins-in/jenkins-demo-0.0.1-SNAPSHOT.jar > /dev/null & echo "启动成功"