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包!
谢谢大家,希望大家多多指点一下。