遇到过几次这种情况:开发将代碼提交之后通过打包部署,发现部署到服务器上的代码不是最新的还是修改之前的老代码。 打包部署流程背景说明: gitlab——》jenkins服务器打jar包——》将打好的jar包过滤并推送到服务器A上build镜像——》将镜像推送到harbor仓库——》部署容器到服务器 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”,最新提交的代码打好的包也是在这里泹是jenkins的打包脚本并没有更新,还是默认去~/.jenkins/rpc目录下面找打成的jar包导致不管构建多少次,每次找到的jar包都是rpc目录下面的都是老的包,而且jenkins構建也不会报错 4、jar包命名规则变更,脚本原有命令过滤不到包