Maven如何解决依赖冲突?

ero*_*a84 2 maven

假设我们有一个项目 A。

  • 项目 A 依赖于项目 B 版本 1.0
  • 项目 A 依赖于项目 C 版本 2.0
  • 项目 C(版本 2.0)依赖于项目 B 版本 2.0

这种情况下,Maven会如何解决冲突呢?

ero*_*a84 5

我找到了这个解释,它对我真的很有帮助。

最近的定义意味着使用的版本将是依赖关系树中与您的项目最接近的版本,

例如。如果 A、B 和 C 的依赖关系定义为 A -> B -> C -> D 2.0 和 A -> E -> D 1.0,则构建 A 时将使用 D 1.0,因为从 A 到 D 的路径通过E较短。您可以在 A 中显式添加对 D 2.0 的依赖项以强制使用 D 2.0