【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解决传递依赖性
相关推荐
z人间防沉迷k2 小时前
后端开发概念
java·后端
caihuayuan52 小时前
Vue3响应式数据: 深入分析Ref与Reactive
java·大数据·spring boot·后端·课程设计
CodeWithMe3 小时前
【C/C++】线程状态以及转换
java·c语言·c++
苹果酱05673 小时前
Java设计模式:探索编程背后的哲学
java·vue.js·spring boot·mysql·课程设计
biubiubiu07063 小时前
windows中JDK切换版本
java·开发语言
qq_334060214 小时前
spring5-配外部文件-spEL-工厂bean-FactoryBean-注解配bean
java·spring·web
Uranus^5 小时前
使用Spring Boot和Spring Security结合JWT实现安全的RESTful API
java·spring boot·spring security·jwt·restful api
FAQEW5 小时前
介绍一下什么是反射(面试题详细讲解)
java·开发语言·反射
是三好6 小时前
并发容器(Collections)
java·多线程·juc
jian110586 小时前
java项目实战、pom.xml配置解释、pojo 普通java对象
java·开发语言·python