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

一、新建项目 

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

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

 二、配置项目

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

 添加部署和回滚选择

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

 三、添加源码管理

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

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

 构建触发器 默认即可

四、编写选择代码

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

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

 五、发布代码脚本

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

[ 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

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

PS:在jenkins持续发布中 本人遇到一个问题,还望撸友们相助!

就是在maven打包时候,并不能自动更新项目依赖的jar,第一次更新,jenkins会将jar拉倒本地,而第二次更新jenkins检测到本地有这个包,但并不知道此时jar已更新,因此还是用着之前的老jar包,这样打包就会报出缺少依赖问题

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

此时则需要手动删除 .m2/repository中相应的依赖包,重新打包方可。

因此,请教撸友们有没有什么地方可以设置,自动检索更新新的依赖jar包!

谢谢大家,希望大家多多指点一下。