maven mvn依赖版本的问题

xcitsw88  于 2023-10-17  发布在  Maven
关注(0)|答案(1)|浏览(143)

我有一个jar A(版本1.2),它使用的是jar B的1.4.6版本。mvn依赖关系:树只显示jar B的1.4.6版本。现在,我在jar C中使用这个jar A版本1.2,并执行mvn dependency:tree,我得到了jar B的1.2.6版本。我想知道这怎么可能?

[INFO] A:jar:1.2
[INFO] \- B:jar:1.4.6:compile

[INFO] C:jar:1.0.9
[INFO] \- A:jar:1.2:compile
[INFO]   \- B:jar:1.2.6:compile

请问这是怎么发生的?

oxalkeyp

oxalkeyp1#

它可能发生,如果

  1. C(或其父节点之一)有一个<dependencyManagement>部分,它强制执行B的特定版本,
  2. C直接依赖于B:jar:1.2.6,
  3. C对B(特别是对B:jar:1.2.6)也有另一个传递依赖,takes precedence超过了从A继承的依赖。
    请注意,依赖插件的2.x版本能够显示此信息,并显示类似“version managed from x.x.x”或“omitted for conflict”的消息(参见Display omitted versions in maven dependency:tree)。Eclipse中的“DepartmentHierarchy”选项卡仍然显示此信息。

相关问题