maven解决包冲突

本文讲述了开发者在Maven项目中遇到包冲突的解决方案,涉及pom文件的包管理、IDEA工具的使用、冲突检测方法,以及通过mvn命令定位和配置解决冲突的过程。
摘要由CSDN通过智能技术生成

前言

这边篇文章主要是来讲解我们日常开发中碰到一些Maven包冲突的一个解决方案。如何去一步一步进行排查,然后找到思路解决某一个固定的痛点和问题。在我们日常的导入包当中,可能不经意间就会导入一些相同类名的包或者路径的包。因为不同的包,它可能依赖某一个版本的可能不是同一个版本,这样就会导致一个冲突产生。可能版本不一致也有一定的原因。

问题

这里主要是在讲我在开发中碰到一个类名冲突的一个问题。因为我导入的一个类的路径跟我想要的另一个类的路径重合了,但是版本和依赖却不一致。所以才产生了接下来的一个解决问题的过程。

排查问题

这里主要是在讲,我们进行一个pom文件的包导入的时候,在旁边可以清楚的看到对应的一个包的引用。你可以进行一个筛选。在这里你可以看到一些冲突的包,可以展示他的列表或者树状类型。这里尤其强调的一个点就是当我们需要找到某个包的时候,我们可以指定跳到它对应的jar包上面,也就是那类的实际代码上面,可以在Idea上面直接看到对应的jar,不得不说这是非常方便的一个工具。

查找冲突

接着就是我们常见的一些jar包冲突的一些检查方法,在这里我们就可以看到。不同的包,但是它引用了同一个子版本的包,而且包路径相包的名字版本号是一致的,这就导致了一个冲突了。只需要排除对应的引用就好。

图形预览

另外还有一种查看方式,就是通过一个图表的表格方式去查看不同的包之间的一个引用。在这里有一个点,主要是当你包引用的足够多的时候,就变得很卡顿。而且检索起来也很慢,但这种方式非常的直观看,有取舍吧。

同样的,在这里你也可以去寻找你想要的包。进行一个跳跃到对应的实际的包和类。

maven命令查找

另外还有一种方式是直接通过maven命令的方式去查找对应的一个包。

mvn dependency:tree -Dverbose -Dincludes=org.mockito:mockito-core 

[INFO] --- maven-dependency-plugin:3.1.1:tree (default-cli) @ agent ---
[INFO] Verbose not supported since maven-dependency-plugin 3.0
[INFO] com.nogle.util:agent:jar:2.0
[INFO] \- org.mockito:mockito-inline:jar:4.5.1:test
[INFO]    \- org.mockito:mockito-core:jar:4.5.1:test

解决方案

最后,在这里我找到了两个不同版本的包相冲突了,而且是来自不同的依赖,这样就好办了,我只需要删除或者排除对应的一个依赖就可以解决冲突这个问题。

maven配置环境


在最下面主要是我贴的一个。配置mvn环境的一个方式,因为有些时候可能我们用的idea的默认的一个maven的配置。从而导致你在终端无法进行一个mvn命令的操控。这就是详细的一个配置环境的过程。

        
vim ~/.bash_profile        
export M2_HOME=/apache-maven-3.6.3
export PATH=$M2_HOME/bin:$PATH
source ~/.bash_profile

总结

最后我想说的是当发现一个问题的时候,我们需要逐步拆解,一步一步找到我们需要处理的问题的点。不得不说idea这个编辑器还是非常强大的。今天这篇文章主要是对我的一个解决冲突的一个思路的回顾。

最后

点赞关注评论一键三连,每周分享技术干货、开源项目、实战经验、国外优质文章翻译等,您的关注将是我的更新动力!

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

查拉图斯特拉talk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值