Maven在dependencyManagement元素中為你提供了一種方式來(lái)統(tǒng)一依賴版本號(hào)。你經(jīng)常會(huì)在一個(gè)組織或者項(xiàng)目的最頂層的父POM中看到dependencyManagement元素。使用pom.xml中的dependencyManagement元素能讓你在子項(xiàng)目中引用一個(gè)依賴而不用顯式的列出版本號(hào)。
Maven會(huì)沿著父子層次向上走,直到找到一個(gè)擁有dependencyManagement元素的項(xiàng)目,然后它就會(huì)使用在這個(gè)dependencyManagement元素中指定的版本號(hào)。
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.sonatype.mavenbook</groupId>
<artifactId>a-parent</artifactId>
<version>1.0.0</version>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.2</version>
</dependency>

<dependencies>
</dependencyManagement>
然后,在子項(xiàng)目中,你可以使用如下的依賴XML添加一個(gè)對(duì)MySQL Java Connector的依賴:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.sonatype.mavenbook</groupId>
<artifactId>a-parent</artifactId>
<version>1.0.0</version>
</parent>
<artifactId>project-a</artifactId>

<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
</project>
如果mysql-connector-java在頂層父項(xiàng)目中被作為一個(gè)依賴列出,這個(gè)層次中的所有項(xiàng)目都將引用該依賴。使用dependencyManagement能讓你統(tǒng)一并集中化依賴版本的管理,而不用添加那些會(huì)被所有子項(xiàng)目繼承的依賴。