一个二方包发布不规范污染其他编译任务的问题。

问题定位

  1. 对比线上环境部署jar包依赖的二方包和公司maven仓库的release包不一致
  2. 查询远程仓库上传记录,最近没有新的提交,同时公司仓库已经设置release包是不能重复上传
  3. 查询构建机器的本地仓库,发现本地仓库的release包和远程仓库的release包不一致,时间戳也比远程仓库的新。
  4. 查询二方包发布记录,发现有上传相同relase版本号的失败任务,时间戳也基本一致。原因是 maven构建生命周期里deploy前面是install,上传失败但是install是成功的,这导致本地仓库.m2下相同release包被替换掉,在其他应用编译时发现本地仓库有相同relase版本号的jar就不会从远程仓库更新下载。

解决方案

  1. mvn deploy 增加参数 -Dmaven.install.skip=true
  2. 分离部署使用的编译机器和发布二方包的机器
  3. release包发布前先检查远程仓库是否已存在,提前校验。若存在,编译前就终止任务。