1. dependcies 和 dependencyManagement标签
差异:
- 结构上:而这实际上是一种逻辑上的继承关系,
dependcies中的组件未指定版本时,会继承 dependencyManagement 指明的版本; - 行为上:dependencyManagement 只是一个声明,并不是真的添加了一个依赖;
参考:
Maven dependencyManagement vs. dependencies Tags
2. 在版本冲突时会选择那个版本的依赖?
选取是会采用最近优选原则:
- 路径短的优先,流入A->B->C->D1.0 和 A->E->D 2.0对比,就会优先选用2.0的版本,因为路径最短;
- 同级时,先声明的优先;
可以使用标签<exclusion>排除冲突的依赖;
可以使用标签<optional>使依赖变得可选
参考: