明确传递依赖版本
使用 dependencyManagement 时,如果项目中出现了多个传递依赖的版本,会被 dependencyManagement 声明的版本覆盖。有好处也有坏处。
如果版本兼容的话,就剩了我们去排除版本的麻烦。
缺点是,出现版本冲突的时候,不是很容易被注意到。
依赖优先级
父 pom 中的 dependencyManagement 是允许被子模块的 dependencyManagement 覆盖的。
沿着树向上层 pom 查找最近的 dependencyManagement 声明的 groupId 和 artifactId。这也就说明了如果子类 dependencyManagement 声明了与父 dependencyManagement 相同的 groupId 和 artifactId,则以最近的为准。如果层次相同,则先声明的优先级更高。
因此,结合 dependencies 来看:
1.dependencies 优先级高于 dependencyManagement。
2.在依赖树上,离引入位置越近的层次,则优先级越高。
3.层次相同,则先声明的优先级更高。
来自 https://blog.youkuaiyun.com/z69183787/article/details/106214481