一. Maven依赖仲裁(Dependency Mediation):
第一原则:最短路径优先原则第二原则:第一声明优先原则,在依赖路径长度相等的前提下,在POM中依赖声明最靠前的依赖优先
例如,项目A有这样的依赖关系:
1. A -> B -> C -> X(1.0),A -> D -> X(2.0),X(1.0)路径长度为3,X(2.0)路径长度为2,根据第一原则,X(2.0)会被解析使用;
2. A -> B -> Y(1.0),A -> C -> Y(2.0),Y(1.0)和Y(2.0)的依赖路径长度相同,如果B的依赖声明在C之前,那么Y(1.0)会被解析使用。
二. 依赖相关的命令
mvn dependency:list 列出最终确定的依赖mvn dependency:tree 打出依赖树
mvn dependency:analyze 依赖分析,给出项目中已使用但未声明的依赖,以及未使用但已声明的依赖