maven解决包冲突

前言

这边篇文章主要是来讲解我们日常开发中碰到一些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这个编辑器还是非常强大的。今天这篇文章主要是对我的一个解决冲突的一个思路的回顾。

最后

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

相关推荐
碎叶城李白7 分钟前
若依学习笔记1-validated
java·笔记·学习·validated
都叫我大帅哥33 分钟前
🌊 Redis Stream深度探险:从秒杀系统到面试通关
java·redis
都叫我大帅哥34 分钟前
Redis持久化全解析:从健忘症患者到记忆大师的逆袭
java·redis
程序猿阿越1 小时前
Kafka源码(一)Controller选举与创建Topic
java·后端·源码
程序无bug1 小时前
Spring6 当中 Bean 的生命周期的详细解析:有五步,有七步,有十步
java
二川bro1 小时前
飞算智造JavaAI:智能编程革命——AI重构Java开发新范式
java·人工智能·重构
Q_970956391 小时前
java+vue+SpringBoo校园失物招领网站(程序+数据库+报告+部署教程+答辩指导)
java·数据库·vue.js
Wyc724091 小时前
Maven
java·数据库·maven
程序猿小D1 小时前
[附源码+数据库+毕业论文]基于Spring+MyBatis+MySQL+Maven+jsp实现的电影小说网站管理系统,推荐!
java·数据库·mysql·spring·毕业设计·ssm框架·电影小说网站