maven 隐式依赖引起的包冲突解决办法

 更新时间:2016年12月31日 11:22:05   投稿:lqh  
这篇文章主要介绍了maven 隐式依赖引起的包冲突解决办法的相关资料,需要的朋友可以参考下

包冲突

1.使用maven管理项目时可能会遇到包冲突的情况比如:log4j-over-slf4j.jar 和 slf4j-log4j12.jar这两个包同时一起运行时就会有问题。

2.这种冲突可能是显式依赖导致,也可能是隐式依赖导致。

显式依赖,直接可以从pom.xml文件的<dependency>中看到两个冲突包的引用。

隐式依赖,在pom.xml的<dependency>无法看到冲突的包,而是由<dependency>引入的包间接引入的。

解决

先确认哪些依赖间接引入了包。使用mvn dependency:tree查看整个项目的依赖树,这里能看到所有的依赖,包括间接依赖。
结果类似如下:

[INFO] +- junit:junit:jar:4.12:test
[INFO] | \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] +- org.apache.storm:storm-core:jar:1.0.2:provided
[INFO] | +- com.esotericsoftware:kryo:jar:3.0.3:compile
[INFO] | | \- com.esotericsoftware:minlog:jar:1.3.0:compile
[INFO] | +- org.clojure:clojure:jar:1.7.0:provided
[INFO] | +- com.lmax:disruptor:jar:3.3.2:provided
[INFO] | +- org.apache.logging.log4j:log4j-api:jar:2.1:provided
[INFO] | +- org.apache.logging.log4j:log4j-core:jar:2.1:provided
[INFO] | +- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.1:provided
[INFO] | +- org.slf4j:log4j-over-slf4j:jar:1.6.6:provided
[INFO] | +- javax.servlet:servlet-api:jar:2.5:provided
[INFO] | \- org.slf4j:slf4j-api:jar:1.7.7:compile
[INFO] +- com.aaa.khala:aaa-khala-insight-sdk-transfer-api:jar:1.0.0-SNAPSHOT:compile
[INFO] | \- com.aaa.khala:aaa-khala-common:jar:1.0.0-SNAPSHOT:compile
[INFO] |   +- javax.mail:javax.mail-api:jar:1.5.5:compile
[INFO] |   +- cglib:cglib:jar:2.2.2:compile
[INFO] |   +- org.aspectj:aspectjrt:jar:1.7.4:compile
[INFO] |   +- org.aspectj:aspectjweaver:jar:1.7.4:runtime
[INFO] |   +- org.javassist:javassist:jar:3.20.0-GA:compile
[INFO] |   +- log4j:log4j:jar:1.2.17:compile
[INFO] |   +- org.slf4j:slf4j-log4j12:jar:1.7.7:compile
[INFO] |   +- dom4j:dom4j:jar:1.6.1:compile
[INFO] |   +- jaxen:jaxen:jar:1.1.6:compile
[INFO] |   +- commons-collections:commons-collections:jar:3.2.1:compile
[INFO] |   +- commons-codec:commons-codec:jar:1.9:compile
[INFO] |   +- commons-beanutils:commons-beanutils:jar:1.9.2:compile
[INFO] |   +- org.apache.commons:commons-compress:jar:1.6:compile
[INFO] |   | \- org.tukaani:xz:jar:1.4:compile

查到冲突包对应的依赖,在pom.xml的<dependency>中配置排除,就不会引入该包了,例如:

<dependency>
  <groupId>com.aaa.khala</groupId>
  <artifactId>aaa-khala-insight-sdk-transfer-api</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <exclusions> 
    <exclusion> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
    </exclusion> 
  </exclusions>
</dependency>  

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • Java中toString()、String.valueOf、(String)强转区别

    Java中toString()、String.valueOf、(String)强转区别

    相信大家在日常开发中这三种方法用到的应该很多,本文主要介绍了Java中toString()、String.valueOf、(String)强转区别,感兴趣的可以了解一下
    2021-09-09
  • SpringBoot整合Freemarker实现页面静态化的详细步骤

    SpringBoot整合Freemarker实现页面静态化的详细步骤

    这篇文章主要介绍了SpringBoot整合Freemarker实现页面静态化,第一步要创建项目添加依赖,本文分步骤给大家详细讲解,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • Java之SSM中bean相关知识汇总案例讲解

    Java之SSM中bean相关知识汇总案例讲解

    这篇文章主要介绍了Java之SSM中bean相关知识汇总案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • 浅谈Java中复制数组的方式

    浅谈Java中复制数组的方式

    这篇文章主要介绍了Java中复制数组的几种方法,需要的朋友可以参考下。
    2017-08-08
  • Java实现动态获取文件的绝对路径

    Java实现动态获取文件的绝对路径

    我们知道在 Java 中读取一些配置文件信息,是在开发中十分常用的要求。这篇文章就来和大家聊聊Java如何实现动态获取文件的绝对路径,感兴趣的可以了解一下
    2023-02-02
  • Java数组(Array)最全汇总(下篇)

    Java数组(Array)最全汇总(下篇)

    这篇文章主要介绍了Java数组(Array)最全汇总(下篇),本文章内容详细,通过案例可以更好的理解数组的相关知识,本模块分为了三部分,本次为下篇,需要的朋友可以参考下
    2023-01-01
  • Java深入分析讲解反射机制

    Java深入分析讲解反射机制

    反射是框架的灵魂,Java框架底层都是用反射机制+xml配置等来实现的,本文将通过示例详细讲解Java中的反射机制,感兴趣的小伙伴可以跟随小编学习一下
    2022-06-06
  • Java开发者结合Node.js编程入门教程

    Java开发者结合Node.js编程入门教程

    这篇文章主要介绍了Java开发者结合Node.js编程入门教程,我将先向您展示如何使用Java EE创建一个简单的Rest服务来读取 MongoDB数据库。然后我会用node.js来实现相同的功能,需要的朋友可以参考下
    2014-09-09
  • spring boot中各个版本的redis配置问题详析

    spring boot中各个版本的redis配置问题详析

    这篇文章主要给大家介绍了关于spring boot中各个版本的redis配置问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • 使用springboot整合RateLimiter限流过程

    使用springboot整合RateLimiter限流过程

    这篇文章主要介绍了使用springboot整合RateLimiter限流过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06

最新评论