dependencies, dependency 和dependencyManagement
dependencies和dependencyManagement都是对依赖,jar包管理。
dependency:具体的依赖项信息。
1. dependencies:自动引入声明在dependencies里的所有依赖,并默认被所有的子项目继承。
如果项目中不写依赖项,则会从父项目继承(属性全部继承)声明在父项目 dependencies里的依赖项。
2. dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要的依赖。
如果不在子项目中声明依赖,是不会从父项目中继承的;只有在子项目中写了该依赖项,并且没有
指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom; 如果子项目中指定了
版本号,那么会使用子项目中指定的jar版本。同时dependencyManagement让子项目引用依赖,
而不用显示的列出版本号。Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,
然后它就会使用在这个dependencyManagement元素中指定的版本号,实现所有子项目使用的依赖项为同一版本。
3. dependencyManagement 中的 dependencies 并不影响项目的依赖项;而独立dependencies元素则影响项目的依赖项。
只有当外层的dependencies元素中没有指明版本信息时,dependencyManagement 中的 dependencies 元素才起作用。
一个是项目依赖,一个是maven项目多模块情况时作依赖管理控制的。