我有Maven POM文件:
C可以获得A?
的依赖关系一般来说,工件 C 的结果是什么?
非常感谢你!
答案 0 :(得分:2)
Maven项目(几乎)继承其父pom的所有元素,而pom又从其各自的父级继承,依此类推至Super POM(参见http://maven.apache.org/ref/3.2.1/maven-model-builder/)。
所以是的,A中定义的依赖关系会导致C中的依赖。
但是请注意,在父项目中定义依赖项(而不是依赖项管理)通常是一个坏主意,因为您无法阻止您的子项继承它们,从而可能导致不必要的依赖项。因此,您最多应该在父母中包含测试和提供范围的依赖项。
答案 1 :(得分:1)
根据Maven依赖机制,子POM继承了父POM的依赖关系
"可以从...收集依赖关系的级别数量没有限制..."
http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
因此,工件C将具有工件B和工件A的所有依赖关系。
此致 Jyotsna
答案 2 :(得分:1)
是的,依赖关系是从所有祖先项目继承的。为了帮助确定项目的实际依赖关系,Maven Help Plugin提供了effective-pom目标。当执行effective-pom
目标时,Maven会为当前构建完成输出有效POM,其中包含有效的配置文件设置和所有父POM设置。要执行目标,只需运行:
mvn help:effective-pom
从输出中,您将看到当前构建所需的所有依赖项,直接,继承和传递。
如果您从 C 项目目录执行此操作,则输出将包含项目 C 的依赖项,项目 B 中的任何继承的依赖项以及项目 A 。
中的任何其他继承依赖项