插件的安转
首先在jenkins插件管理中找到 publish over ssh ,并安转。
系统配置
插件安装号以后,在jenkins 的系统配置里面的最下方会有个shh的相关配置选择。
目标服务器这边 登录方式有三种,可自行选择,我这边是按照密码登录
构建配置
(基础发布的构建可以参考我之前的文章,这边主要是讲热部署)
在构建后选择Send build artifacts over SSH,并按照自身需求完成配置。
Source files: 需要发送给远程主机的源文件。
Remove prefix 移除前面的路径。如果不设置这个参数,则远程主机会自动创建构建源 source files 包含的那个路径。
Remote directory: 远程主机目录。
注:Remove prefix 的路劲设置需要特别注意,以下是jenkins打包后war包存放的路径:/var/lib/jenkins/workspace/Test-Maven/target/test.war,jenkinsRemove prefix的初始路径是到“Test-Maven”这一层的。
Exec command: 在远程主机上执行的命令,或者执行的脚本。
echo ‘STOP donghang service’
tomcat_home=/usr/local/Tomcat8.5
sh $tomcat_home/bin/shutdown.sh;
ls
tom_pid=`ps -ef | grep tomcat8_8095 | grep -v grep | awk '{print $2}'`
if [ -n "$tom_pid" ];
then
echo “tomcat 关闭失败,将强制结束进程:” $tom_pid
kill -9 $tom_pid;
fi
echo “tomcat 进程结束”
echo “清空weapps部署目录并复制新war包…”
rm -rf $tomcat_home/webapps/ROOT $tomcat_home/webapps/ROOT.war
cp $tomcat_home/webapps/app/sdHr-0.0.1-SNAPSHOT.war $tomcat_home/webapps/ROOT.war
echo “重新启动项目…”
BUILD_ID=dontKillMe
sh $tomcat_home/bin/startup.sh
脚本中最主要的就是将历史war包删除,然后将webapps/app下的war包复制到webapps文件夹下,并将war包改名ROOT。
扩展
改名这段可通过其他方法实现:
在构建时做相应配置,这个时候就直接将war包名称定义好
pwd
if [ -e "*.war" ]; then
rm -rf *.war
fi
cp /var/lib/jenkins/workspace/DsmsTest-Maven/target/*.war /target/ROOT.war
笔记:
spingboot 打war包 需要注意,由于springboot内置了Tomcat 所以打war包,需要修改pom相应配置,使其打包时提出Tomcat,并且项目启动项需要调整
大佬链接: springboot打war包的详细说明