Maven:依赖关系出现在有效的pom中,但不出现在依赖树中

从事多模块项目.

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依赖:树

有什么建议?

最佳答案
mvn help:effective-pom

基本上是超级POM(宏/父)依赖项与您在项目级别定义的简单POM之间的合并.因此,您确实在Effective-pom创建的XML下看到了rogue_1,当然您的祖父母pom的依赖管理是源.这是detailed read一样的.

mvn dependency:tree

另一方面,显示项目中使用的依赖项的tre.正如您所提到的那样,您已经从所有提到的依赖项中排除了这一点,因此您不应该找到此处列出的工件.

顺便说一句,在这两种情况下,在子模块的类路径中使用rogue_1的可能性为零.

点赞