mvn依赖树排除包冲突

在工作中经常碰到jar冲突的问题,有些jar并没有在pom.xml配置,但由于与某些jar存在依赖关系所以被引入项目中,有时候这些被引入的jar并非你所需要,而且和你pom.xml配置的dependency冲突,这时候就需要将这些冲突的jar排除出去,具体办法如下

在项目的更目录下执行如下命令:

mvn dependency:tree

输出如下:

[INFO] ------------------------------------------------------------------------
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ sparklearn ---
[INFO] +- org.apache.spark:spark-hive_2.10:jar:1.6.1-mdh1.6.1.2:compile
[INFO] |  +- com.twitter:parquet-hadoop-bundle:jar:1.6.0:compile
[INFO] |  +- org.spark-project.hive:hive-cli:jar:1.2.1.spark:compile
[INFO] |  |  \- jline:jline:jar:2.12:compile
[INFO] |  +- org.spark-project.hive:hive-exec:jar:1.2.1.spark:compile
[INFO] |  |  +- javolution:javolution:jar:5.5.1:compile
[INFO] |  |  +- log4j:apache-log4j-extras:jar:1.2.17:compile
[INFO] |  |  +- org.antlr:antlr-runtime:jar:3.4:compile
[INFO] |  |  |  +- org.antlr:stringtemplate:jar:3.2.1:compile
[INFO] |  |  |  \- antlr:antlr:jar:2.7.7:compile
[INFO] |  |  +- org.antlr:ST4:jar:4.0.4:compile
[INFO] |  |  +- org.apache.commons:commons-compress:jar:1.4.1:compile
[INFO] |  |  |  \- org.tukaani:xz:jar:1.0:compile
[INFO] |  |  +- org.codehaus.groovy:groovy-all:jar:2.1.6:compile
[INFO] |  |  +- com.googlecode.javaewah:JavaEWAH:jar:0.3.2:compile
[INFO] |  |  +- org.iq80.snappy:snappy:jar:0.2:compile
[INFO] |  |  +- stax:stax-api:jar:1.0.1:compile
[INFO] |  |  \- net.sf.opencsv:opencsv:jar:2.3:compile
[INFO] |  +- org.spark-project.hive:hive-metastore:jar:1.2.1.spark:compile
[INFO] |  |  +- com.jolbox:bonecp:jar:0.8.0.RELEASE:compile
[INFO] |  |  +- org.apache.derby:derby:jar:10.10.2.0:compile
[INFO] |  |  +- org.datanucleus:datanucleus-api-jdo:jar:3.2.6:compile
[INFO] |  |  +- org.datanucleus:datanucleus-rdbms:jar:3.2.9:compile
[INFO] |  |  +- commons-dbcp:commons-dbcp:jar:1.4:compile
[INFO] |  |  \- javax.jdo:jdo-api:jar:3.0.1:compile
[INFO] |  |     \- javax.transaction:jta:jar:1.1:compile
[INFO] |  +- org.apache.avro:avro:jar:1.7.7:compile
[INFO] |  +- org.apache.calcite:calcite-avatica:jar:1.2.0-incubating:compile
[INFO] |  +- org.apache.calcite:calcite-core:jar:1.2.0-incubating:compile
[INFO] |  |  +- org.apache.calcite:calcite-linq4j:jar:1.2.0-incubating:compile
[INFO] |  |  +- net.hydromatic:eigenbase-properties:jar:1.1.5:compile
[INFO] |  |  \- org.codehaus.janino:commons-compiler:jar:2.7.6:compile
[INFO] |  +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
[INFO] |  +- commons-codec:commons-codec:jar:1.10:compile
[INFO] |  +- joda-time:joda-time:jar:2.9:compile
[INFO] |  +- org.jodd:jodd-core:jar:3.5.2:compile
[INFO] |  +- org.datanucleus:datanucleus-core:jar:3.2.10:compile
[INFO] |  +- org.apache.thrift:libthrift:jar:0.9.2:compile
[INFO] |  \- org.apache.thrift:libfb303:jar:0.9.2:compile
[INFO] +- org.apache.hive:hive-jdbc:jar:0.13.1-cdh5.3.0:compile
[INFO] |  +- org.apache.hive:hive-common:jar:0.13.1-cdh5.3.0:compile
[INFO] |  |  \- org.apache.hive:hive-shims:jar:0.13.1-cdh5.3.0:compile
[INFO] |  |     +- org.apache.hive.shims:hive-shims-common:jar:0.13.1-cdh5.3.0:compile
[INFO] |  |     +- org.apache.hive.shims:hive-shims-common-secure:jar:0.13.1-cdh5.3.0:compile
[INFO] |  |     +- org.apache.hive.shims:hive-shims-0.23:jar:0.13.1-cdh5.3.0:runtime
[INFO] |  |     \- org.apache.hive.shims:hive-shims-scheduler:jar:0.13.1-cdh5.3.0:runtime
[INFO] |  +- org.apache.hive:hive-metastore:jar:0.13.1-cdh5.3.0:compile
[INFO] |  +- org.apache.hive:hive-serde:jar:0.13.1-cdh5.3.0:compile
[INFO] |  |  \- com.sun.jersey:jersey-servlet:jar:1.14:compile
[INFO] |  +- org.apache.hive:hive-service:jar:0.13.1-cdh5.3.0:compile
[INFO] |  |  +- net.sf.jpam:jpam:jar:1.1:compile
[INFO] |  |  \- org.eclipse.jetty.aggregate:jetty-all:jar:7.6.0.v20120127:compile
[INFO] |  |     +- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1.1:compile
[INFO] |  |     +- org.apache.geronimo.specs:geronimo-jaspic_1.0_spec:jar:1.0:compile
[INFO] |  |     +- org.apache.geronimo.specs:geronimo-annotation_1.0_spec:jar:1.1.1:compile
[INFO] |  |     \- asm:asm-commons:jar:3.1:compile
[INFO] |  |        \- asm:asm-tree:jar:3.1:compile
[INFO] |  \- org.apache.hive:hive-exec:jar:0.13.1-cdh5.3.0:compile
[INFO] |     +- org.apache.hive:hive-ant:jar:0.13.1-cdh5.3.0:compile
[INFO] |     |  \- org.apache.velocity:velocity:jar:1.5:compile
[INFO] |     \- org.apache.ant:ant:jar:1.9.1:compile
[INFO] |        \- org.apache.ant:ant-launcher:jar:1.9.1:compile
[INFO] +- org.mi:thrift:jar:0.9.2-mi-v1.1:compile
[INFO] |  \- org.json:json:jar:20140107:compile
[INFO] +- redis.clients:jedis:jar:2.9.0:compile
[INFO] |  \- org.apache.commons:commons-pool2:jar:2.4.2:compile
[INFO] +- net.sf.json-lib:json-lib:jar:2.4:compile
[INFO] +- net.sf.ezmorph:ezmorph:jar:1.0.6:compile
[INFO] +- org.apache.orc:orc-core:jar:1.2.3:compile
[INFO] |  +- io.airlift:aircompressor:jar:0.3:compile
[INFO] |  \- org.apache.hive:hive-storage-api:jar:2.1.1.3-pre-orc:compile
[INFO] +- org.apache.kafka:kafka_2.9.2:jar:0.8.1.1:compile
[INFO] |  +- com.yammer.metrics:metrics-core:jar:2.2.0:compile
[INFO] |  +- org.apache.zookeeper:zookeeper:jar:3.3.4:compile
[INFO] |  +- net.sf.jopt-simple:jopt-simple:jar:3.2:compile
[INFO] |  \- com.101tec:zkclient:jar:0.3:compile
[INFO] +- com.google.code.gson:gson:jar:2.8.0:compile
[INFO] +- com.mi.bigdata:presto-jdbc:jar:1.0-SNAPSHOT:compile
[INFO] |  +- commons-io:commons-io:jar:2.5:compile
[INFO] |  \- com.mi.bigdata:common-utils:jar:1.0-SNAPSHOT:compile
[INFO] +- commons-collections:commons-collections:jar:3.2.2:compile
[INFO] +- commons-httpclient:commons-httpclient:jar:3.1:compile
[INFO] +- commons-pool:commons-pool:jar:1.6:compile
[INFO] +- org.apache.httpcomponents:httpclient:jar:4.5.2:compile
[INFO] +- org.apache.httpcomponents:httpcore:jar:4.4.5:compile
[INFO] +- com.xiaomi.data:data-platform-spec-b2c:jar:0.0.1-SNAPSHOT:compile
[INFO] |  \- org.apache.thrift:thrift:jar:0.5.0-fix-thrift2402:compile
[INFO] +- org.apache.hadoop:hadoop-hdfs:jar:2.6.0-mdh3.4.2:compile
[INFO] |  +- org.mortbay.jetty:jetty:jar:6.1.26:compile
[INFO] |  +- org.mortbay.jetty:jetty-util:jar:6.1.26:compile
[INFO] |  +- commons-daemon:commons-daemon:jar:1.0.13:compile
[INFO] |  +- javax.servlet.jsp:jsp-api:jar:2.1:compile
[INFO] |  +- com.xiaomi.infra:ext-log4j:jar:1.0.0-SNAPSHOT:compile
[INFO] |  +- javax.servlet:servlet-api:jar:2.5:compile
[INFO] |  +- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
[INFO] |  +- tomcat:jasper-runtime:jar:5.5.23:compile
[INFO] |  |  \- commons-el:commons-el:jar:1.0:compile
[INFO] |  +- xmlenc:xmlenc:jar:0.52:compile
[INFO] |  +- xerces:xercesImpl:jar:2.9.1:compile
[INFO] |  |  \- xml-apis:xml-apis:jar:1.3.04:compile
[INFO] |  \- org.htrace:htrace-core:jar:3.0.4:compile

[INFO] ------------------------------------------------------------------------

比如我想配置

<!-- https://mvnrepository.com/artifact/org.apache.hive/hive-exec -->
<dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-exec</artifactId>
    <version>2.1.1</version>
</dependency>

但是项目中有两处都依赖引入这个jar,但是这些jar不是我们所需要的,而且冲突,此时找到hive-exec

|  +- org.spark-project.hive:hive-exec:jar:1.2.1.spark:compile
|  \- org.apache.hive:hive-exec:jar:0.13.1-cdh5.3.0:compile

他们的父节点分别是:

+- org.apache.spark:spark-hive_2.10:jar:1.6.1-mdh1.6.1.2:compile

+- org.apache.hive:hive-jdbc:jar:0.13.1-cdh5.3.0:compile

在pom.xml如下配置,就可以将这两个jar排除

<dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-hive_2.10</artifactId>
            <version>${spark.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.spark-project.hive</groupId>
                    <artifactId>hive-exec</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

<dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-jdbc</artifactId>
            <version>0.13.1-cdh5.3.0</version>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.hive</groupId>
                    <artifactId>hive-exec</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值