dependencies和dependencyManagement

93 阅读1分钟

1. dependencies

  • 作用:直接声明项目运行时需要依赖的 jar 包。

  • 特点

    • 这些依赖会被直接引入到项目的 classpath 中。
    • 子模块会继承父模块中声明的依赖。
    • 当多个依赖引入相同的传递性依赖但版本不同时,Maven 默认采用 "最短路径优先" 和 "先声明优先" 的原则来选择版本。

2. dependencyManagement

  • 作用:集中管理项目的依赖版本,确保子模块使用统一的依赖版本。

  • 特点

    • 仅声明依赖的版本和配置信息,不会直接引入依赖到项目中。
    • 子模块可以通过 <artifactId> 引用这些依赖,无需重复指定版本(除非需要覆盖)。
    • 子模块继承父模块的 dependencyManagement 后,可选择性地引入需要的依赖。

第一个可以用在所有的pom文件里面,用于声明依赖的导入,里面还有dependent,第二个是父类关于子类导入依赖版本的限制,里面也有ddependencies,但和第一个有本质区别.