簡體   English   中英

Maven傳遞依存關系流如何工作?

[英]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會以可傳遞方式讀取Bpom.xml 然后,Maven拉平該樹,解決沖突(如果有),並為您的項目配置兩個依賴項。

您的項目C現在可以像訪問AB一樣訪問它們。


請注意,Eclipse中的Maven插件(如果使用)非常聰明,如果工作空間中可用,可以決定直接使用JAR或項目文件。 這可能會導致一些混亂,但是這很有限。 有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM