jenkins实现jar包自动发布和回滚(二)----jenkins实现项目发布、回滚
一、新建项目


二、配置项目

添加部署和回滚选择

三、添加源码管理


构建触发器 默认即可
四、编写选择代码

case $deploy_env in
Deploy)
echo "status: $deploy_env"
path="${WORKSPACE}/dist"
if [ -d $path ];then
echo "The file is already exists!!!"
else
mkdir -p $path
fi
cd ${WORKSPACE}
tar czf dist/${JOB_NAME}-${BUILD_NUMBER}.tar.gz * --exclude=dist
find ${WORKSPACE}/dist -mtime 2 -name "*.tar.gz" -exec rm -rf {} \;
echo "Completion!!!"
;;
RollBack)
echo "Status: $deploy_env"
echo "version: $version"
file_old=`ls ${WORKSPACE}/dist | grep $version`
cd ${WORKSPACE}/dist
cp -R $file_old ${JOB_NAME}-${BUILD_NUMBER}.tar.gz
;;
*)
exit
;;
esac
五、发布代码脚本

[ profitassist]# cat profitassist.sh
#!/bin/sh
#Copy jar to target path
#by author YuXD 2020-03-24
source /etc/profile
BUILD_ID=DONTKILLME #后台执行
date=`date +%Y%m%d`
project_name=profit-assist-0.0.1-SNAPSHOT.jar
pid=$(ps -ef|grep ${project_name}|grep -v grep | awk ‘{print $2}‘)
# 关闭已经启动的jar进程
function stop(){
if [ -n "$pid" ]
then
echo "pid进程 :$pid"
kill -9 $pid
else
echo "进程没有启动"
fi
}
stop
sleep 5s
#发布jar服务
function start(){
tar -czvf profit-assist-0.0.1-SNAPSHOT.jar.$date profit-assist-0.0.1-SNAPSHOT.jar
wget http://172.*.*.*:8080/profitassist/target/profit-assist-0.0.1-SNAPSHOT.jar -O profit-assist-0.0.1-SNAPSHOT.jar
./startup.sh
ps -ef|grep ${project_name}
}
start[ profitassist]# cat startup.sh #!/bin/bash nohup java -jar profit-assist-0.0.1-SNAPSHOT.jar &
六、运行jenkins

PS:在jenkins持续发布中 本人遇到一个问题,还望撸友们相助!
就是在maven打包时候,并不能自动更新项目依赖的jar,第一次更新,jenkins会将jar拉倒本地,而第二次更新jenkins检测到本地有这个包,但并不知道此时jar已更新,因此还是用着之前的老jar包,这样打包就会报出缺少依赖问题

此时则需要手动删除 .m2/repository中相应的依赖包,重新打包方可。
因此,请教撸友们有没有什么地方可以设置,自动检索更新新的依赖jar包!
谢谢大家,希望大家多多指点一下。