【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解决传递依赖性
相关推荐
Arrom9 小时前
DLNA 渲染端排障实战:从 20s 卡顿到 stale subscriber 的两周追凶之旅
android·java
J-Tony1110 小时前
【JVM】三色标记法
java·jvm·算法
李白的天不白10 小时前
docker ps
java
NE_STOP11 小时前
Docker--Docker Swarm集群
java
两年半的个人练习生^_^11 小时前
JMM 进阶:彻底理解 CAS 实现原理
java·开发语言
wuminyu11 小时前
Java锁机制之park和unpark源码剖析
java·linux·c语言·jvm·c++
W_LuYi18511 小时前
手撸极简zkEVM验证器:RISC-V电路实践
java·risc-v
AI人工智能+电脑小能手11 小时前
【大白话说Java面试题 第102题】【并发篇】第2题:volatile 能否保证线程安全?
java·安全·面试
KobeSacre11 小时前
JUC 概述
java·开发语言
小bo波12 小时前
形式化方法 × UML
java·软件工程·uml·面向对象·形式化方法·tla+