处理多模块项目。
GrandParent
\
Parent
\
Child
GrandParent
在rogue_1
部分中有<dependencyManagement>
个模块提供!
Parent
不在其rogue_1
中有pom.xml
。
Child
不将rogue_1
作为其pom.xml
中的直接依赖项。
然而,它包括其他一些项目,其中一些可能包括rogue_1
。 (至少有一个 取决于rogue_1
)
为了安全起见,在所有 Child
的依赖关系中,我添加了排除项,如下所示:
<dependency> <!-- a direct dependency of Child -->
<groupId>erso</groupId>
<artifactId>galen</artifactId>
<exclusions>
<exclusion>
<groupId>resistance</groupId>
<artifactId>rogue_1</artifactId>
</exclusion>
</exclusions>
</dependency>
(例如galen.erso
引入resistance.rogue_1
)
然而:rogue_1
DOES 最终会在
mvn help:effective-pom
(如提供!)
的ouctome中不
mvn dependency:tree
有什么建议吗?
答案 0 :(得分:2)
基本上是超级POM(宏/ +父)依赖项与您在项目级别定义的简单POM之间的合并。因此,您确实在Effective-pom创建的XML下看到rogue_1
,当然您的祖父母pom dependencyManagement
是来源。这是一个detailed read。
显示项目中使用的依赖项的tre。正如你所提到的,你已经从你提到的所有依赖项中排除了这个,所以你不应该找到这里列出的工件。
顺便说一句,在这两种情况下,rogue_1
模块的类路径中child
的机会为零。
答案 1 :(得分:0)
如果您的项目中有个人资料,或者您正在继承的资料(并且某种方式被激活),您可能会遇到这种行为。据我所知,<profile/>
中定义的依赖关系不会出现在依赖树上。