gpt4 book ai didi

maven - 如何让 maven 警告传递依赖版本不匹配?

转载 作者:行者123 更新时间:2023-12-04 17:37:45 28 4
gpt4 key购买 nike

在下面的示例 Maven 依赖项中,slf4j 依赖项想要拉入 log4j 1.2.17,而 log4j 显式依赖项想要拉入 1.2.15。 Maven 将 log4j 解析为 1.2.15 版本,但是没有警告 Maven 打印出 sl4j 需要更新版本的 log4j。

我怎样才能让 Maven 警告这些类型的冲突,而不是只是默默地接受
1.2.15版本?

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
</dependency>

最佳答案

总之,Maven-enforcer-plugin应该用来处理这个。

你只需要像这样配置执行器插件

<project>
...
<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.1.1</version>
<executions>
<execution>
<id>enforce</id>
<configuration>
<rules>
<DependencyConvergence/>
</rules>
</configuration>
<goals>
<goal>enforce</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
...
</project>

更详细地,如 documentation page 中所述,这样的事情有一个传递依赖不匹配:

<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.6.0</version>
</dependency>
</dependencies>

将在没有执行者规则的情况下默默地“工作”,但是在设置规则后,它将使构建失败
Dependency convergence error for org.slf4j:slf4j-api1.6.1 paths to dependency are:

[ERROR]
Dependency convergence error for org.slf4j:slf4j-api:1.6.1 paths to dependency are:
+-org.myorg:my-project:1.0.0-SNAPSHOT
+-org.slf4j:slf4j-jdk14:1.6.1
+-org.slf4j:slf4j-api:1.6.1
and
+-org.myorg:my-project:1.0.0-SNAPSHOT
+-org.slf4j:slf4j-nop:1.6.0
+-org.slf4j:slf4j-api:1.6.0

因此,当用户收到有关构建失败的错误消息时,她可以通过排除来修复它,例如

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.6.0</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>

关于maven - 如何让 maven 警告传递依赖版本不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12995127/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com