java - Maven:当前项目和依赖项目使用同一个库的不同版本

标签 java maven hadoop

我的主要项目的 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:listmvn dependency:tree 找出 Maven 的决定。

关于java - Maven:当前项目和依赖项目使用同一个库的不同版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39254834/

相关文章:

java - 找不到 spring schemalocation

json - 使用查找表的 Hive 查询

java - 如何在 Google Play 测试/实时中为应用程序设置不同的端点?

Java 输出流到子进程刷新导致 IOException

java - 无法从外部进程读取流

eclipse - Grails卡在 'Configuring classpath'上

plugins - 带有ssl问题的Weblogic maven插件

java - 打印不带方括号和逗号的 ArrayList 元素

hadoop - 如何将自定义 hadoop native 编解码器编译为 libhadoop.so?

hadoop - Windows 平台上是否有 Hortonwork Data 平台的管理器