[英]How does the Maven Transitive dependencies flow work?
我是Maven的新手,所以仍然想了解它的工作原理。 我有一個庫B ,它依賴於A。 因此, A是依賴於B添加的。 我有C項目,它取決於B ,也取決於A。 因此,如果我在C的POM中添加B庫,則傳遞依賴項應該起作用,並且C應該看到A。C- > B-> A
我看到我的同事在C的POM中寫了以下內容:
<dependency>
<groupId>B</groupId>
<artifactId>B</artifactId>
<version>1.0</version>
<exclusions>
<exclusion>
<groupId>C</groupId>
<artifactId>C</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>C</groupId>
<artifactId>C</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
當我查看B的pom時,發現沒有包裝信息。 因此,它既不是罐子也不是戰爭。 它只是用於圖書館。
我的問題是,庫的(B)依賴模塊是否作為傳遞依賴項傳遞給在其依賴項中使用庫(B)的Project(C)。
是:Maven解析整個依賴關系樹,然后相應地配置您的項目。 您可以通過目標dependency:tree
查看此分辨率dependency:tree
當在項目C中包括B時,Maven會以可傳遞方式讀取B的pom.xml
。 然后,Maven拉平該樹,解決沖突(如果有),並為您的項目配置兩個依賴項。
您的項目C現在可以像訪問A和B一樣訪問它們。
請注意,Eclipse中的Maven插件(如果使用)非常聰明,如果工作空間中可用,可以決定直接使用JAR或項目文件。 這可能會導致一些混亂,但是這很有限。 有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.