• 解决maven构建时报错:xxx.jar was cached in the local repository


    近日,apache log4j2爆出“核弹级”远程代码执行漏洞。公司相关系统也在升级log4j版本。

    过程中遇到一个问题,本地代码通过maven clean install命令执行后的程序包里已经没有log4j旧版本的依赖了,可是呢,测试环境通过Jenkins构建后,利用log4shell工具扫描程序包,依然存在log4j旧版本。

    [root@youfu-server ~]# cd /root/
    [root@youfu-server ~]# ./log4shell scan /www/epaysch/tomcat-pctrans-provider-8580/webapps/*/WEB-INF/lib
    1:38PM INF identified vulnerable path fileName=org/apache/log4j/net/SocketNode.class path=/www/epaysch/tomcat-pctrans-provider-8580/webapps/pctrans-provider/WEB-INF/lib/log4j-1.2.17.jar versionInfo="log4j 1.2.17"

    看来,测试环境Jenkins服务器的maven库里某些包可能依赖了log4j旧版本。

    于是乎,找运维伙伴将Jenkins任务的build配置由clean install暂时改为dependency:tree,来看看具体是由哪个包造成的。

    可是,构建Jenkins任务时,发现报错,提示maven私服上特定版本的某个jar包已经缓存在了本地仓库中(xxx-version.jar was cached in the local repository)。就是说,Maven默认会使用本地缓存的库来编译工程,对于上次下载失败的库,maven会在~/.m3/repository/<group>/<artifact>/<version>/目录下创建xxx.lastUpdated文件,一旦这个文件存在,那么在直到下一次nexus更新之前都不会更新这个依赖库。

    [ERROR] Failed to execute goal on project trans-rpcprovider: Could not resolve dependencies for project com.yft:trans-rpcprovider:war:1.0-SNAPSHOT: Failure to find com.yft:PCOperCommonUtil:jar:1.0-SNAPSHOT in http://192.168.40.196:8081/nexus/content/repositories/snapshots/ was cached in the local repository, resolution will not be reattempted until the update interval of public has elapsed or updates are forced -> [Help 1]
    [ERROR]
    [ERROR] T...

    网上给出的解决办法有3个:

    • 删掉本地maven仓库里的缓存文件,m3repository/<group>/<artifact>/<version>/目录下的*.lastUpdated文件。然后重新执行maven命令。
    • 在maven settings.xml文件里,加<updatePolicy>always</updatePolicy>来强制每次都更新依赖库。
    • 加上-U指令来强制刷新本地仓库。

    我和运维伙伴逐个尝试,前两个方法并没解决问题(也许是操作不当吧)。好事多磨,最终靠第三个方法得以解决,即使用dependency:tree -U命令,最终看到了测试环境程序包的依赖树。

  • 相关阅读:
    vue学习之五生命周期
    vue学习之四组件系统
    vue学习之三常用命令
    vue学习之二ECMAScript6标准
    vue学习之一vue初识
    (转)nginx负载均衡(5种方式)、rewrite重写规则及多server反代配置梳理
    python技巧总结之set、日志、rsa加密
    (转)二十三种设计模式及其python实现
    Python之traceback错误堆栈信息处理
    python虚拟环境--virtualenv
  • 原文地址:https://www.cnblogs.com/buguge/p/15706099.html
Copyright © 2020-2023  润新知