如何在Jenkins中更新log4j-1.2.12.jar文件

disho6za  于 2022-09-20  发布在  Jenkins
关注(0)|答案(1)|浏览(124)

我的Jenkins服务器中有这个log4j-1.2.12.jar文件
路径:/data/jenkins/.m2/repository/log4j/log4j/1.2.12/log4j-1.2.12.jar
我从安全团队得到了这个Apache Log4j Unsupported Version Detection message,如何解决这个问题我试着下载了最新版本,但它类似于这个log4j-api-2.19.0.jar

llmtgqce

llmtgqce1#

不,不是“在Jenkins”,更准确地说,log4j不是Jenkins的一部分。Jenkins喝掉了${JENKINS_HOME}/war/WEB-INF/lib爆发的战争的jar。它不在那里。

如果一个插件消耗了log4j,那么可以在${JENKINS_HOME}/plugins/<plugin_name>/WEB-INF/lib的分解插件目录中找到它。在JENKINS-67353下跟踪了log4j与大多数插件相关的状态。

您引用的是maven本地存储库.m2/repository。此结构是在控制器上运行maven构建时创建的;依赖项JAR在构建的pom.xml(其中之一)中指定。

注解中的指导是正确的;找到适当的pom.xml并更新它,然后重新构建。

您可以通过删除整个.m2目录(或移动/ZIP;如果您是偏执狂则删除)并重新启动Jenkins来验证这些声明。您会发现Jenkins运行得很好,并且目录仍然是空的。运行maven作业,它将重新填充,包括log4j-1.2.12.jar,假设它仍在pom.xml中指定。修复您的maven pom.xml,删除目录,重新运行您的作业,它应该不会再次出现。

也许您已经更新了pom.xml,但从未清除本地maven存储库,那么它将不会重新填充(您可以检查目录的时间戳,以了解它第一次/最后一次下载的时间)。

您还可以通过指定mvn dependency:purge-local-repository并添加-DreResolve=false来删除资料库的引用部分,以避免重新解析。当然,如果您已经更新了pom.xml, it would remain since it's not referenced in thepom.xml`(是的,如果有一个选项可以清除给定JAR的全部或大部分存储库或所有版本,那就更好了,但是...)。

相关问题