为什么Maven要下载log4j-1.2.12.jar? [英] Why is Maven downloading log4j-1.2.12.jar?

查看:28
本文介绍了为什么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-plugin3.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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆