问题描述:
遇到过几次这种情况:开发将代码提交之后,通过打包部署,发现部署到服务器上的代码不是最新的,还是修改之前的老代码。
打包部署流程背景说明:
gitlab——》jenkins服务器打jar包——》将打好的jar包过滤并推送到服务器A上build镜像——》将镜像推送到harbor仓库——》部署容器到服务器
1、代码没有提交成功
这个情况遇到过几次。
2、jenkins上的缓存没有清除
例如:test这个服务打包会生成一个api缓存目录,这个缓存目录就是在jenkins服务器的~/.m2/repository/com/run/test-api,里面有一些打包需要引用的模块。如果这个缓存目录不删除,打包的时候就不会去更新这些引用模块的内容,导致打的包里面代码还是原来的老代码。
因此在每次打包之前,脚本要写好先rm -rf ~/.m2/repository/com/run/test-api ,再进行打包操作,这样,在打包的时候每次都会去更新这个服务需要引用的模块。
3、jenkins上面的工程目录变更,而打包脚本没有更新
例如:jenkins上有一个叫“rpc”的构建项目。有一次同事将jenkins上面的rpc改成了“IOT”,然后构建部署,发现打出来的包里面的代码不是最新的。
原因是jenkins上构建项目原来的名字是rpc,所以在jenkins的工程目录下面生成的目录也是rpc,当将rpc改成了“IOT”再构建,就会在jenkins的~/.jenkins/workspace目录下面生成新的工程目录“IOT”,最新提交的代码打好的包