这个是 Jenkins 部署 jar 的子文章
需求
使用 Jenkins 实现将 svn 中的代码编译成 war 包部署到 Tomcat 中去,嗯,光明正大的偷懒。
实现
基本上和正常的 Spring 项目一样,能在 IDE 中正常打包运行即可,只是将 Bash 加上就行。
相比 SpringBoot ,难度会降低不少。
Excute shell
#!/bin/bash
#!备份目录
backup_path=/home/munineyi/backup/war/
#!Jenkin 生成war 包目录
war_path=/home/munineyi/workspace/target/Sandy.war
echo "Execute shell Start"
cd /home/munineyi/apache-tomcat-8.0.47/bin
echo "Stopping Tomcat"
sh shutdown.sh
echo "Stoped Tomcat"
pid=`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`
if [ -n "$pid"];then
echo "kill -9 的 pid:"$pid
kill -9 $pid
fi
echo "预防 Tomcat 未关闭,手动终止进程"
echo "Backup war"
if [ -f "$backup_path" ];then
#!备份文件
mv /home/munineyi/apache-tomcat-8.0.47/webapps/Sandy.war $backup_path/Sandy.war.`date +%Y%m%d%H%M%S`
#!replace 旧的项目war 包
cp /home/teoctec/workspace/Sandy.war /home/munineyi/apache-tomcat-8.0.47/webapps/
fi
echo "Execute shell Finish"
echo "Start Tomcat"
#!防止 Tomcat 被杀死
BUILD_ID=dontKillMe nohup /home/munineyi/apache-tomcat-8.0.47/bin/startup.sh