mvn 依赖版本问题

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

我有一个 jar A(版本 1.2),它使用 1.4.6 版本的 jar B。mvn dependency:tree 仅显示 1.4.6 版本的 jar B。 现在,我在 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

请建议这是怎么发生的?

maven pom.xml
1个回答
0
投票

如果

,这可能会发生
  1. C(或其父级之一)有一个
    <dependencyManagement>
    部分,强制执行 B 的特定版本,
  2. 如果 C 直接依赖于 B:jar:1.2.6,
  3. 如果 C 对 B 也有另一种传递依赖(特别是 B:jar:1.2.6),则优先于从 A 继承的依赖。

请注意,依赖插件的 2.x 版本能够显示此信息,其中包含“从 x.x.x 管理的版本”或“因冲突而省略”等消息(请参阅在 Maven 依赖项中显示省略的版本:树)。 Eclipse 中的“Dependency Hierarchy”选项卡仍然显示此信息。

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