gpt4 book ai didi

maven - 在 maven 2 依赖树中解释 "omitted for conflict"

转载 作者:行者123 更新时间:2023-12-03 08:24:15 25 4
gpt4 key购买 nike

这是 Maven 2.2.1 生成的依赖树mvn -o dependency:tree -Dverbose -Dincludes=log4j

[INFO] [dependency:tree {execution: default-cli}]
[INFO] com.openboxes.renderingservice:common:jar:1.0
[INFO] +- org.springframework:spring:jar:2.0.4:compile
[INFO] | \- commons-logging:commons-logging:jar:1.1:compile
[INFO] | \- log4j:log4j:jar:1.2.12:compile
[INFO] \- it.mycompany.portal:server:jar:1.5-SNAPSHOT:compile
[INFO] \- org.slf4j:slf4j-log4j12:jar:1.1.0:compile
[INFO] \- (log4j:log4j:jar:1.2.13:compile - omitted for conflict with 1.2.12)

如您所见,log4j v1.2.12 优于 v1.2.13。

我知道“Maven 使用最近的策略解决版本冲突”(请参阅​​ http://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html )但是这两个依赖项似乎处于相同的距离(两个嵌套级别,我错了吗?)所以我希望最近的一个用来。

有人可以解释这个结果吗?

是的,在这个 POM 中没有明确声明 log4j(我认为应该是),但我想更好地理解 Maven 的工作方式。

谢谢

最佳答案

我自己在 http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html 找到了答案:“如果两个依赖版本在依赖树中的深度相同,那么在 Maven 2.0.8 之前,它没有定义哪个会获胜,但从 Maven 2.0.9 开始,声明中的顺序很重要:第一个声明获胜” .

对我来说,这似乎是一个非常值得怀疑的策略。 :-\

关于maven - 在 maven 2 依赖树中解释 "omitted for conflict",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7742312/

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