jarA依赖于B,B依赖于C(1.1版本),则C称为A的传递依赖,B是A的直接依赖;如果D依赖C(1.2版本),此时便产生了传递依赖冲突。如下图所示。
Maven对于传递依赖冲突有自己的解决办法
1、采用第一声明者优先的原则,即在pom文件中,采用先声明的jar的依赖。
2、直接依赖级别高于传递依赖。优先采用直接定义的依赖。
排除依赖
版本锁定
指定项目中依赖的版本,dependencyManagement并不会将指定版本的jar导入项目。
jarA依赖于B,B依赖于C(1.1版本),则C称为A的传递依赖,B是A的直接依赖;如果D依赖C(1.2版本),此时便产生了传递依赖冲突。如下图所示。
1、采用第一声明者优先的原则,即在pom文件中,采用先声明的jar的依赖。
2、直接依赖级别高于传递依赖。优先采用直接定义的依赖。
指定项目中依赖的版本,dependencyManagement并不会将指定版本的jar导入项目。