【Maven】如何发现,定位,解决依赖冲突

发现冲突

运行的时候可能报出错误xx类找不到xx方法,xx类找不到,很有可能就是冲突导致的。

定位冲突根因

通过idea maven插件

idea安装插件,maven helper

比如我有两个依赖,guava和findbug。

他们都用到了jsr305,但是我依赖的版本不同。可以进入pom文件点击下面的通过Dependency Anazlyer来查看冲突。

通过maven命令

bash 复制代码
mvn dependency:tree

可以打印出依赖关系树

通过jvm参数

bash 复制代码
-XX:+TraceClassLoading

在java进程启动时增加jvm参数,可以打印加载了哪些类,根据这些内容可以判断是不是加载错了。

解决冲突的方法:

  1. 使用同一版本。
  2. 通过调整pom文件依赖顺序,如果冲突版本差别不大,我建议把新版本放在上面,优先加载。
  3. 通过exclusion解决传递依赖性
相关推荐
Spring AI学习8 分钟前
Spring AI深度解析(11/50):异常处理与容错机制实战
java·人工智能·spring
qq_124987075329 分钟前
基于协同过滤算法的在线教育资源推荐平台的设计与实现(源码+论文+部署+安装)
java·大数据·人工智能·spring boot·spring·毕业设计
总是学不会.30 分钟前
[特殊字符] 自动分区管理系统实践:让大型表维护更轻松
java·后端·数据库开发·开发
大筒木老辈子33 分钟前
C++笔记---并发支持库(future)
java·c++·笔记
全靠bug跑37 分钟前
Sentinel 服务保护实战:限流、隔离与熔断降级详解
java·sentinel
五岳39 分钟前
Web层接口通用鉴权注解实践(基于JDK8)
java
铁锚40 分钟前
JDK21与lombok插件的兼容性问题
jvm·maven
咖啡の猫1 小时前
Python字典元素的增、删、改操作
java·开发语言·python
Lucky小小吴1 小时前
JAVA漫谈反序列化篇——笔记
java·开发语言·笔记
练习时长一年1 小时前
LeetCode热题100(最小栈)
java·算法·leetcode