Maven 之 dependencyManagement 与 dependencies 区别
文章目录
- dependencies
- dependencyManagement
- 总结
dependencies
dependencies 作用是引入项目依赖, 所有被 dependencies 里声明的依赖都会被引入到项目当中, 并默认被所有的子项目继承
dependencyManagement
dependencyManagement 只是声明依赖, 并不实现引入, 因此子项目需要显式的声明需要用的依赖. 如果不在子项目中声明依赖, 是不会从父项目中继承下来的; 只有在子项目中写了该依赖项, 并且没有指定具体版本, 才会从父项目中继承该项, 并且 version 和 scope 都读取自父 pom; 另外如果子项目中指定了版本号, 那么会使用子项目中指定的 jar 版本
总结
dependencies 中的 jar 直接加到项目中, 管理的是依赖关系(如果有父子 pom 都定义了同一个依赖切父子版本号不一样, 则子 pom 中只能被动接受父类的版本);
dependencyManagement 主要管理版本, 对于子类继承同一个父类是很有用的, 集中管理依赖版本不添加依赖关系, 对于其中定义的版本, 子 pom 不一定要继承父 pom 所定义的版本