为什么Maven要下载log4j-1.2.12.jar? [英] Why is Maven downloading log4j-1.2.12.jar?
本文介绍了为什么Maven要下载log4j-1.2.12.jar?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试从maven项目中删除所有易受攻击的log4j依赖项。
我在POM中使用的是log4j 2.16依赖项,并在其他依赖项中添加了log4j和sl4j的排除项。
不过,每当我运行maven包Goal时,它都会下载log4j 1.2.12jar。
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ Test ---
Downloading: https://repo.maven.apache.org/maven2/log4j/log4j/1.2.12/log4j-1.2.12.pom
Downloaded: https://repo.maven.apache.org/maven2/log4j/log4j/1.2.12/log4j-1.2.12.pom (145 B at 0.1 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/log4j/log4j/1.2.12/log4j-1.2.12.jar
Downloaded: https://repo.maven.apache.org/maven2/log4j/log4j/1.2.12/log4j-1.2.12.jar (350 KB at 101.6 KB/sec)
我甚至运行了mvn dependency:tree
命令,它只显示log4j 2.16。
它下载log4j 1.2.12JAR的原因可能是什么?
推荐答案
Maven plugins,即在生成项目时执行实际工作的库也有依赖项:log4j-1.2.12是您的项目使用的maven-compiler-plugin-3.1的(可传递的)依赖项。
因此,Maven下载log4j
这一事实并不意味着它将与您的应用程序打包。
备注:maven-compiler-plugin
3.1版是比较旧的版本。此版本在default lifecycle bindings中指定,出于兼容性原因,永远不会升级。不过,您应该在POM文件中指定较新的版本,例如:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
</plugins>
</pluginManagement>
</build>
这篇关于为什么Maven要下载log4j-1.2.12.jar?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文