来自 parent 项目的依赖项位于 Maven 依赖项树的哪个级别

On which level of the maven dependency tree are dependencies from the parent project

我有一个 parent pom,它依赖于版本为 1.0 的第三方 jar A。然后我有一个继承自 parent pom 的 child 项目。这个 child 项目定义了对库 B 的依赖,它本身依赖于版本为 1.1 的第三方 jar A。

依赖树看起来像这样吗(因此引入了 1.0 版):

Child->A(版本 1.0) Child->B->A(版本 1.1)

parent POM 的依赖关系在依赖关系树的哪个级别?

在解决依赖关系之前,先将父子POM组合成一个"effective POM"。您可以使用 mvnhelp:effective-pom 显示有效的 POM。因此你的依赖树变成:

  (Effective POM) -> A:1.0
  (Effective POM) -> B     -> A:1.1

效果与您在子 POM 中声明 A:1.0 依赖项相同。由于 Maven 中的依赖关系更接近根 "win",因此使用 A:1.0。

此外,如果父 POM 和子 POM 都声明了对同一模块的依赖,则子指定的版本会覆盖父指定的版本(= 成为有效 POM 中的版本)。