您可以爲您的項目創建一個或多個boms(材料清單)。這些pom.xmls將在dependencyManagement
部分中聲明項目中使用的所有依賴項。
在每個子pom中,您都會導入這些boms並使用項目所需的這些依賴關係。
以這種方式,依賴版本是集中管理的,而同時,每個子pom只使用它需要的那些依賴關係。
見Importing Managed Dependencies
BOM項目
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>my.group</groupId>
<artifactId>My-Project-Bom</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.7.0</version>
</dependency>
...
</dependencies>
</dependencyManagement>
</project>
兒童項目
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>my.group</groupId>
<artifactId>child1</artifactId>
<packaging>jar</packaging>
<name>Child1</name>
<version>1.0</version>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>my.group</groupId>
<artifactId>My-Project-BOM</artifactId>
<version>1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
</dependency>
</dependencies>
...
</project>
maven dependency plugin有幾個目標,以幫助您獲得依賴層次。
mvn dependency:list
mvn dependency:tree
mvn dependency:analyze
另一個想法我剛:爲什麼不通過所有模塊都使用相同的版本號,並依靠$ {} project.version儘可能多地。理想情況下,我只在頂部POM中使用版本號,並在其他地方使用變量。就像我不需要依賴管理一樣,所有內部依賴版本都是直接用變量指定的。 – anselm 2011-06-09 12:40:29