[英]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.