1. 传递性依赖(Transitive Dependencies)
Maven 会自动解析并包括项目依赖项的依赖项。换句话说,如果你的项目依赖于库 A,而库 A 又依赖于库 B,那么你的项目也会自动依赖库 B。传递性依赖减少了在 pom.xml 文件中手动声明所有间接依赖的需要。
2. 最近的优先原则(Nearest Wins)
当同一个依赖项通过不同的路径传递到项目中时,Maven 会选择最靠近的那个版本。也就是说,直接依赖的版本会优先于传递依赖的版本。
3. 声明顺序原则(Declared Order)
如果两个依赖项的路径长度相同,Maven 会选择首先声明的依赖版本。例如,在 pom.xml 文件中,先声明的依赖项的版本会覆盖后声明的依赖项的版本。