依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成类包版本冲突
一.maven命令mvn -Dverbose dependency:tree
其中omitted for duplicate表示有jar包被重复依赖,最后写着omitted for conflict with xxx的,说明和别的jar包版本冲突了,而该行的jar包不会被引入。
omitted for conflict with 5.2.7.RELEASE,表示spring-core 5.2.0版本不会被项目引用,而spring-core 5.2.7版本会被项目引用
二、idea 插件maven helper插件来检查依赖冲突
点开pom.xml会发现多了一个Dependency Analyzer视图
三、解决方法 a、使用第一声明者优先原则谁先定义的就用谁的传递依赖,即在pom.xml文件自上而下,先声明的jar坐标,就先引用该jar的传递依赖、
b、使用路径近者优先原则即直接依赖级别高于传递依赖
c、排除依赖
使用dependencyManagement 进行版本锁定,dependencyManagement可以统一管理项目的版本号,确保应用的各个项目的依赖和版本一致。