Maven排除特定版本到胖罐子



我正在一个项目中工作,其中Springboot jar和Hive jar由于的重复版本而产生冲突

<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>3.1.0.3.1.0.0-78</version>
</dependency>

上面的蜂箱罐是脂肪罐,有很多重复依赖性,在下面的例子中,你可以看到2.6.0和3.1.1.3.1.0.0-78两个版本的

现在,如果我们想添加排除

<exclusions>
<exclusion>
<artifactId>XX</artifactId>
<groupId>YYY</groupId>
</exclusion>
</exclusions>

现在我只想排除2.6.0版本,并保留3 3.1.1.3.1.0.0-78,有没有任何选项可以定义排除的jar版本?

[WARNING] 
Dependency convergence error for org.apache.hadoop:hadoop-auth:2.6.0 paths to dependency are:
+-com.syf.gemfire:jdbc-gemfire-dataloader-pcf:2.0.0
+-org.apache.hive:hive-jdbc:3.1.0.3.1.0.0-78
+-org.apache.hive:hive-common:3.1.0.3.1.0.0-78
+-com.github.joshelser:dropwizard-metrics-hadoop-metrics2-reporter:0.1.2
+-org.apache.hadoop:hadoop-common:2.6.0
+-org.apache.hadoop:hadoop-auth:2.6.0
and
+-com.syf.gemfire:jdbc-gemfire-dataloader-pcf:2.0.0
+-org.apache.hive:hive-jdbc:3.1.0.3.1.0.0-78
+-org.apache.hive:hive-service:3.1.0.3.1.0.0-78
+-org.apache.hive:hive-llap-server:3.1.0.3.1.0.0-78
+-org.apache.hbase:hbase-hadoop2-compat:2.0.2.3.1.0.0-78
+-org.apache.hadoop:hadoop-mapreduce-client-core:3.1.1.3.1.0.0-78
+-org.apache.hadoop:hadoop-yarn-common:3.1.1.3.1.0.0-78
+-org.apache.hadoop:hadoop-auth:3.1.1.3.1.0.0-78
and
+-com.syf.gemfire:jdbc-gemfire-dataloader-pcf:2.0.0
+-org.apache.hive:hive-jdbc:3.1.0.3.1.0.0-78
+-org.apache.hive:hive-service:3.1.0.3.1.0.0-78
+-org.apache.hive:hive-llap-server:3.1.0.3.1.0.0-78
+-org.apache.hbase:hbase-server:2.0.2.3.1.0.0-78
+-org.apache.hbase:hbase-http:2.0.2.3.1.0.0-78
+-org.apache.hadoop:hadoop-auth:3.1.1.3.1.0.0-78

要解决依赖收敛错误,请在<dependencyManagement>中添加条目,在其中指定所需的版本,如

<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>3.1.0.3.1.0.0-78</version>
</dependency>

然后,所有通过传递找到的版本都会被您指定的版本所替换,冲突就消失了。

最新更新