0
鑑於父母和孩子POM以下和lib1
和lib2
都包括類foo.bar.Test
。Maven如何處理從父項繼承的傳遞依賴項?
父POM
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>foo</groupId>
<artifactId>foo-parent</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>my.transitive</groupId>
<artifactId>lib1</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</project>
孩子POM
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>foo</groupId>
<artifactId>foo-parent</artifactId>
<version>1.0</version>
</parent>
<artifactId>foo-child</artifactId>
<dependencies>
<dependency>
<groupId>my.transitive</groupId>
<artifactId>lib2</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</project>
如果我包括foo-child
在myApp
依賴和實例foo.bar.Test
,類的版本將Maven的決心?爲什麼?
我的應用程序POM
<project>
<modelVersion>4.0.0</modelVersion>
<artifactId>myApp</artifactId>
<groupId>myApp</groupId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>foo</groupId>
<artifactId>foo-child</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</project>
如果你想要一個較不詳細的類路徑定義,你也可以使用'mvn dependency:list'或'mvn dependency:build-classpath'。通常,Maven將使用此處描述的「最接近定義」策略:https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Transitive_Dependencies – Daniel