在Maven构建工具中,dependencyManagement和dependencies是两个关键的元素,用于管理项目的依赖项。
dependencyManagement:
dependencyManagement元素通常位于父项目的pom.xml文件中。它允许您集中定义项目中使用的依赖项及其版本号, 实现所有子项目使用的依赖项为同一版本。
dependencyManagement里只是声明依赖,并不实际引入,因此子项目需要显示的声明需要的依赖。
当子项目中写了该依赖项,并且没有指定具体版本,则version和scope都读取自父pom; Maven会沿着父层级一直向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用其中指定的版本号。
如果子项目中指定了版本号,那么会使用子项目中指定的版本。dependencies:
dependencies元素通常用于子项目的pom.xml文件中。它用于实际声明项目所需的依赖项和版本号。
Maven会自动引入声明在dependencies里的所有依赖,并默认被所有的子项目继承。如果项目中不写依赖项,则会从父项目继承全部的依赖项。pluginManagement和plugins的区别相似,只不过它们用于管理插件。