如何防止maven下载排除的传递依赖项(依赖项中不存在:树输出)

问题描述 投票:0回答:1

我有一个具有如下依赖树的项目。

    <dependency>
     <groupId>xxxxx</groupId>
     <artifactId>xxxxxx</artifactId>
     <exclusions>
      <exclusion>
       <groupId>log4j</groupId>
       <artifactId>log4j</artifactId>
      </exclusion>
     </exclusions>
    </dependency>

我排除了我的依赖项 xxxxxx 使用的 log4j 1.2.14,并添加了 log4j-api 和 log4j-core 作为新的依赖项。

    <dependency>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j-api</artifactId>
     <version>2.17.1</version>
     </dependency>
    <dependency>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j-core</artifactId>
     <version>2.17.1</version>
    </dependency>

最后,log4j 1.2.14 似乎已从 dependency:tree 输出中删除,但在运行“mvn clean and install”命令时,它仍然会下载。有没有办法阻止这个版本被下载?

java maven log4j log4j2
1个回答
0
投票

xxxxxx依赖是我们公司内部开发的内部工件。通过添加 log4j 的排除,我认为不应再下载 log4j。 但仍在下载。通过按照 @Piotr P. Karwasz 的建议运行“mvn dependency:resolve-plugins”,我注意到 log4j-1.x.x 被另一个内部开发的 Maven 插件使用。通过将此插件升级到使用 log4j 2 支持的版本,我解决了我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.