首先需要安装所需的两个插件,Maven Integration plugin 和 Publish Over SSH
在“系统配置”,将服务器信息配置到jenkins,我用的是腾讯云服务器,所以将腾讯云服务器信息配置到jenkins
在“全局安全配置”,给目前登陆的这个jenkins账号设置权限
在“全局工具配置”,设置maven、jdk的信息
这里的文件路径指的是自己服务器上面maven的setting文件地址
同样,这里也是服务器上面jdk的路径地址
请填写成maven的安装路径
最后就可以新建任务,配置自己要自动化部署的项目信息
设置构建策略
设置自己的git信息,我这里用的是码云
设置一下pom
我选择执行脚本的方式
我使用的shell脚本,意思是启动我/home/work目录下的stop.sh脚本,把当前运行的SpringBoot项目进程杀掉,然后把/home/work目录下的startup.sh脚本赋予权限,最后再运行startup.sh,运行新构建的SpringBoot项目
贴上我在jenkins的shell脚本:
#!/bin/bash
cd /home/work
echo "execute stop.sh shell start ..."
sh stop.sh
echo "execute stop.sh shell finish"
chmod 777 /home/work/startup.sh
BUILD_ID=dontiKillMe nohup /home/work/startup.sh &
stop.sh脚本:
#!/bin/sh
cd /home/work
echo "stopping springboot application...."
pid=`ps -ef | grep SpringBootTest-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if ["$pid" == ""]
then
echo "springboot is already stop!"
else
echo "kill -9 的pid:"+$pid
kill -9 $pid
fi
startup.sh脚本:
#!/bin/sh
echo "remove old springboot.jar ..."
rm /home/work/SpringBootTest-0.0.1-SNAPSHOT.jar
mv /var/lib/jenkins/jobs/SpringBoot_Test/workspace/target/SpringBootTest-0.0.1-SNAPSHOT.jar /home/work/SpringBootTest-0.0.1-SNAPSHOT.jar
sleep 2s
echo "running springboot.jar ..."
java -jar /home/work/SpringBootTest-0.0.1-SNAPSHOT.jar &
echo "running springboot.jar finish"
这里的/var/lib/jenkins/jobs/SpringBoot_Test/workspace/target/是SpringBoot项目打包好后jar包的放置的路径,如果不知道自己服务器上面生成jar包的路径的话,可以先不管,等启动好后,在控制台信息里面可以看到jar包的生成路径,再把路径改成自己的。
最好是直接在服务器里面新建sh脚本文件再把脚本copy进去,不然如果本地先建好,再把脚本文件拉到服务器的话会出现编码不一致,导致项目构建会出现报错。
保存好后就可以直接启动了
这里如果控制台出现报错,那有可能是shell脚本执行chmod 777 /home/work/startup.sh命令没权限的问题,可以到jenkins配置文件里面将所以者改成root用户,不要使用jenkins用户
vim /etc/sysconfig/jenkins
改好后重启一下jenkins
systemctl daemon-reload
systemctl restart jenkins
启动成功:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)