2010-05-10 66 views
3

我的目標很簡單,但實際上,因爲有多個(和看似複雜的方式來做到這一點),我不知道我需要做的......所以我有一定的運行時庫(特別是ADF庫),每項目需要添加到。這個父pom文件只包含JAR依賴關係。我怎樣才能從一個孩子的POM文件使用這個POM文件?Maven的:在每個項目中重新使用POM文件

回答

8

我不認爲使用繼承是一個很好的解決方案。即使每個項目都使用ADF工件,但您不希望所有的poms都獲得這些依賴關係,因此在公司父pom中聲明它們並不是真正的選擇。

所以,相反,我的建議是創建pom包裝組項目中的ADF相依在一起:

<project> 
    <groupId>com.mycompany</groupId> 
    <artifactId>adf-deps</artifactId> 
    <version>1.0</version> 
    <packaging>pom</packaging> 
    <dependencies> 
    <dependency> 
     <groupId>some.groupId</groupId> 
     <artifactId>adf-artifact-1</artifactId> 
     <version>${jdev.version}</version> 
    </dependency> 
    ... 
    <dependency> 
     <groupId>some.groupId</groupId> 
     <artifactId>adf-artifact-n</artifactId> 
     <version>${jdev.version}</version> 
    </dependency> 
    </dependencies> 
    <properties> 
    <jdev.version>10.1.3</jdev.version> 
    </properties> 
</project> 

然後,安裝/部署該項目,並在需要的任何項目聲明爲依賴ADF artifact:

<project> 
    ... 
    <dependencies> 
    ... 
    <dependency> 
     <groupId>com.mycompany</groupId> 
     <artifactId>adf-deps</artifactId> 
     <version>1.0</version> 
     <type>pom</type> 
    </dependency> 
    </dependencies> 
</project> 
+2

+1用於推薦構成的繼承。這實際上有兩個方面的幫助,它允許輕鬆地重用依賴項集,並允許更輕鬆地升級到這些依賴項集的新版本。 – sal 2010-05-10 16:32:43

1

如果孩子POM文件實際上是一個孩子(即聲明它的父),那麼它將繼承的依賴關係並沒有什麼留給你做的事。

相關問題