繁体   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