依赖传递
个人理解:依赖传递是指我们在导入某些坐标依赖后,此依赖会携带其所依赖的坐标一起被我们导入,出现在我们的工程中,称为坐标依赖。
坐标依赖的范围对传递依赖的影响:
范围:compile、provided、runtime、test
依赖冲突的解决
- 第一声明者优先原则:
在pom文件定义依赖时,可以将你想使用的依赖版本定义到前面,在其后的坐标所依赖的其他版本将会被覆盖。 - 路径近者优先原则:
是指当自身定义到pom文件中时,自身的版本会高于其它坐标所依赖的版本而采用自身的版本。 - 排除依赖:
排除依赖可以使用<exclusions><exclusion><groupId>被依赖的坐标id</groupId><artifactId>想要排除依赖的坐标id</artifactId></exclusion></exclusions>
标签 - 锁定版本
此方法不需要考虑依赖路径、声明优先等因素,可在导入坐标之前对坐标的版本进行锁定,但注意是是:在工程中锁定依赖并不代表已添加了依赖,必须在下面导入其对应的依赖,使用<dependencyManagement>坐标
;若锁定了坐标的版本,在导入依赖时可不写版本号。