【Maven】依赖重复和冲突的问题 omitted for duplicate 解决

解决Maven包依赖重复、冲突导致(omitted for duplicate、omitted for conflict with x.y.z)问题
Java开发者避免不来使用Maven,你的项目避免不了依赖第三方的jar包,避免不了会发生依赖重复和冲突 。
到底是怎么产生的呢?
举个例子,很容易理解 。YourApp依赖Ajar,Ajar依赖Xjar-1.0、Yjar-1.0,还依赖Bjar,Bjar依赖Xjar-2.0、Zjar-1.0,这个时候YourApp是依赖Xjar-1.0还是依赖Xjar-2.0呢?这个上帝都不知道,听天由命,哪个版本被第一个加载进来就是它了 。可想而知,出现诡异的问题那就不难理解了 。
如何干掉这个问题呢?
首先,找出可能重复和冲突的依赖 。使用的工具有:
// 查看依赖树mvn dependency:tree // 查看依赖树,-Dverbose显示更多信息mvn dependency:tree -Dverbose // 查看依赖树,-Dincludes进行过滤mvn dependency:tree -Dverbose -Dincludes='*jackson*:"jackson*' 其次,引入希望的版本,过滤其它不需要的版本,武功秘籍就是excludes,如下图:
引入指定版本

【Maven】依赖重复和冲突的问题 omitted for duplicate 解决

文章插图
清除其它版本

【Maven】依赖重复和冲突的问题 omitted for duplicate 解决

文章插图
在使用IDEA的时候,YourApp有时还是会出现类似的问题,那就刷新下Maven吧,IDEA缓存也是很多坑,没事重启下或者刷新下 。
【【Maven】依赖重复和冲突的问题 omitted for duplicate 解决】
【Maven】依赖重复和冲突的问题 omitted for duplicate 解决

文章插图

    推荐阅读