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

发布时间 - 2026-01-10 22:14:24    点击率:

包冲突

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>  

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


# maven  # 隐式依赖引起的包冲突  # 隐式依赖包冲突解决方案  # 详解maven依赖冲突以及解决方法  # 详解 maven的pom.xml用<exclusion>解决版本问题  # 使用idea解决maven依赖冲突的问题  # 关于Maven依赖冲突解决之exclusions  # 会有  # 隐式  # 是由  # 这两个  # 希望能  # 时就  # 谢谢大家  # 包了  # 能看到  # 引入了  # core  # hamcrest  # INFO  # test  # org  # junit  # apache  # clojure  # minlog  # disruptor 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何为不同团队 ID 动态生成多个非值班状态按钮  微信小程序 wx.uploadFile无法上传解决办法  如何在阿里云通过域名搭建网站?  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  如何在云指建站中生成FTP站点?  JavaScript如何实现路由_前端路由原理是什么  Laravel如何实现模型的全局作用域?(Global Scope示例)  Laravel如何升级到最新版本?(升级指南和步骤)  如何在阿里云域名上完成建站全流程?  Laravel如何使用.env文件管理环境变量?(最佳实践)  如何在景安云服务器上绑定域名并配置虚拟主机?  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  如何获取免费开源的自助建站系统源码?  如何用VPS主机快速搭建个人网站?  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  实例解析angularjs的filter过滤器  香港服务器网站推广:SEO优化与外贸独立站搭建策略  Laravel怎么上传文件_Laravel图片上传及存储配置  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  Python自动化办公教程_ExcelWordPDF批量处理案例  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  Python文件流缓冲机制_IO性能解析【教程】  如何在阿里云虚拟服务器快速搭建网站?  javascript中闭包概念与用法深入理解  Android滚轮选择时间控件使用详解  重庆市网站制作公司,重庆招聘网站哪个好?  Laravel安装步骤详细教程_Laravel环境搭建指南  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  Laravel观察者模式如何使用_Laravel Model Observer配置  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  JavaScript实现Fly Bird小游戏  Laravel怎么清理缓存_Laravel optimize clear命令详解  如何实现建站之星域名转发设置?  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  微信小程序 五星评分(包括半颗星评分)实例代码  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  如何在VPS电脑上快速搭建网站?  jQuery 常见小例汇总  js实现获取鼠标当前的位置  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  如何快速查询网址的建站时间与历史轨迹?  如何在橙子建站中快速调整背景颜色?  什么是javascript作用域_全局和局部作用域有什么区别?  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程