jenkins编译拿不到nexus的依赖库

公司内网jenkins编译拿不到nexus的依赖库
  话说我们公司内网有个docker部署的nexus,nexus是一个Maven仓库管理器。有时开发会自己上传项目依赖库(以前是我上传的,后来给回他们弄)
 
一、问题引入
  有一天,他们反映说jenkins发布的时候,项目拉不到最新依赖库,一直拉旧的。
然后我查到这个文章【https://blog.51cto.com/qiangsh/1743074
 
问题原因
  Maven默认会使用本地缓存的库来编译工程,对于上次下载失败的库,maven会在​​~/.m2/repository/<group>/<artifact>/<version>/​​目录下创建xxx.lastUpdated文件,一旦这个文件存在,那么在直到下一次nexus更新之前都不会更新这个依赖库。
  登上jenkins服务,确实有这个 .lastUpdated的文件

   当时为了最快解决问题,我采用了方法一。

方法一:直接删除    --- 治标不治本
删除v~/.m2/repository/<group>/<artifact>/<version>/目录下的 *.lastUpdated文件,然后再次运行mvn compile编译工程。
创建备份目录: mkdir /root/bak/nexus-xxx -p
备份:cp -rp /root/.m2/repository/com/xxx /root/bak/nexus-xxx/

删除重新编译:
cd /root/.m2/repository/com/xxx

#这个删多了,其实删 *.lastUpdated 即可(也就是:/root/.m2/repository/com/xxx/2.4.1.49/xxx-core-2.4.1.49.pom.lastUpdated
rm -rf *       

方法二:修改maven文件,强制每次发布都更新依赖库

修改~/.m2/settings.xml 或/opt/maven/conf/settings.xml文件,将其中的仓库添加 <updatePolicy>always</updatePolicy>来强制每次都更新依赖库。

  补充一下,之后有一次,当开发又报障拉不了依赖库,又开始怀疑是同一个问题

 

   这个502问题是打不开nexus地址,不是同一个问题原因

posted @ 2023-01-23 16:05  windysai  阅读(482)  评论(0编辑  收藏  举报