面试题答案
一键面试Maven依赖传递规则
- 路径最短优先:如果多个依赖路径都能引入同一个依赖,Maven会选择路径最短的那个。例如,若A -> B -> C(路径长度为2) 和 A -> D -> E -> C(路径长度为3),则选择A -> B -> C这条路径引入C依赖。
- 声明顺序优先:当不同依赖路径长度相同时,在
pom.xml
文件中靠前声明的依赖路径会被优先选择。
项目中最终引入C依赖的情况
- 直接依赖:当A项目通过
<dependency>
标签在其pom.xml
文件中直接声明依赖C时,项目会引入C的依赖。 - 传递依赖:当A依赖B,且B通过
<dependency>
标签在其pom.xml
文件中声明依赖C时,由于依赖传递机制,项目会引入C的依赖。前提是不存在路径更短或声明顺序更优先的情况来排除这个传递依赖。