<dependencyManagement>
标签是 Maven 中用来管理依赖版本的机制之一,它可以被用来集中管理依赖的版本,以确保项目中依赖的各个库使用的版本一致。
通常情况下,我们在 pom.xml
文件中声明依赖时,可以直接指定依赖的版本号。但对于较大的项目,通常有很多模块和子模块,如果每个模块中都单独声明依赖版本号,那么当需要升级依赖时,需要修改大量的 pom.xml 文件。而 <dependencyManagement>
标签的作用就是通过在父模块中声明依赖版本号,来统一管理子模块的依赖版本号。
具体来说,父项目中的 <dependencyManagement>
标签会声明一组依赖,并且该依赖组中的每个依赖的版本号都被指定。当在子项目中声明相同依赖时,Maven 会使用父项目中声明的版本号,而不是子项目中声明的版本号。
举个例子,如果父项目的 pom.xml
文件中声明了如下的 <dependencyManagement>
标签:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>30.1-jre</version>
</dependency>
</dependencies>
</dependencyManagement>
那么在子项目中声明依赖时,只需要指定依赖的 groupId
和 artifactId
即可,例如:
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
</dependencies>
这样子项目中的依赖就会使用父项目中声明的版本 30.1-jre
。如果需要升级 guava 的版本,只需要在父项目中修改 <dependencyManagement>
标签中的版本号即可,所有子项目都会继承这个版本号。这样就可以避免在每个子项目中都单独指定版本号,并且方便管理和维护。