从事多模块项目.
GrandParent
\
Parent
\
Child
GrandParent在其< dependencyManagement>中有rogue_1模块.部分提供!
父根本没有在其pom.xml中使用rogue_1.
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带来抵抗.问题_1)
但是:rogue_1最终会被显示为对结果的依赖
mvn help:effective-pom
(提供!)
它不在ouctome
mvn依赖:树
有什么建议?
基本上是超级POM(宏/父)依赖项与您在项目级别定义的简单POM之间的合并.因此,您确实在Effective-pom创建的XML下看到了rogue_1,当然您的祖父母pom的依赖管理是源.这是detailed read一样的.
另一方面,显示项目中使用的依赖项的tre.正如您所提到的那样,您已经从所有提到的依赖项中排除了这一点,因此您不应该找到此处列出的工件.
顺便说一句,在这两种情况下,在子模块的类路径中使用rogue_1的可能性为零.