我的主要项目的 pom 声明了一个版本的 hadoop-client。依赖项声明了一个不同 版本的 hadoop-client。哪一个最终被使用?
我的主要项目的 pom.xml:
<dependency>
<groupId>com.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.7.0</version>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.myown.group</groupId>
<artifactId>my-own-artifact</artifactId>
<version>1.0.0</version>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
我的主项目所依赖的库的pom.xml:
<dependency>
<groupId>com.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.5.0</version>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
最佳答案
Maven 有一套复杂的版本解析规则,概括为“最近取胜”。一个详细信息来源是 this post here.您可以使用 mvn dependency:list
或 mvn dependency:tree
找出 Maven 的决定。
关于java - Maven:当前项目和依赖项目使用同一个库的不同版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39254834/