1. dependencies
-
作用:直接声明项目运行时需要依赖的 jar 包。
-
特点:
- 这些依赖会被直接引入到项目的 classpath 中。
- 子模块会继承父模块中声明的依赖。
- 当多个依赖引入相同的传递性依赖但版本不同时,Maven 默认采用 "最短路径优先" 和 "先声明优先" 的原则来选择版本。
2. dependencyManagement
-
作用:集中管理项目的依赖版本,确保子模块使用统一的依赖版本。
-
特点:
- 仅声明依赖的版本和配置信息,不会直接引入依赖到项目中。
- 子模块可以通过
<artifactId>引用这些依赖,无需重复指定版本(除非需要覆盖)。 - 子模块继承父模块的
dependencyManagement后,可选择性地引入需要的依赖。
第一个可以用在所有的pom文件里面,用于声明依赖的导入,里面还有dependent,第二个是父类关于子类导入依赖版本的限制,里面也有ddependencies,但和第一个有本质区别.