2010-02-16 100 views
23

是否可以包含幾個較小的pom文件來創建父pom文件。 (例如,我想將報告拆分,將部分構建到自己的poms中並將它們包含在父pom中)以便有效管理它們是否可以拆分maven pom文件?

回答

14

如果您使用的是Maven 2,則可以簡單地創建多個父級別。第一個pom.xmlpom1)將定義基本屬性(例如存儲庫)。第二個pom.xmlpom2),其具有pom1作爲<parent>,將定義報告信息。等等......最後,「真實」pom.xml將繼承pom2並將定義它自己的屬性。

您可以根據需要創建任意數量的父級別(當然,如果您有5個父級級別,則難以維護)。

注意的Maven 3談到引進mixin concept,這將允許您在pom.xml分裂成多個文件,但它看起來像that is not happening now until maven 4

+1

猜測,我將等待Maven 3中的mixin功能 – Joe

+0

@Joshua Maven 3已經可用,即使它是beta版本,它也是相當穩定的。 Maven 3提供了與Maven 2'pom.xml'的100%兼容性。它已被最新版本的NetBeans,m2eclipse或IntelliJ使用。 – romaintaz

+3

Maven 3.0不提供mixins * yet *,但是。 –

5

不太。您不能在更小的POM中包含報告和生成部分,您只能使用inherit them from a parent POM
如果您的POM變得太大,可以(並建議)將您的依賴關係排列成邏輯組。例如,對於一個GWT項目,你可以爲所有的持久性與GWT的創建一個新的POM如下:然後

<project> 
    <groupId>org.yourcompany</groupId> 
    <artifactId>gwt-dependencies</artifactId> 
    <version>1.0</version> 
    <packaging>pom</packaging> 
    <dependencies> 
    <dependency> 
     <groupId>com.google</groupId> 
     <artifactId>gwt-user</artifactId> 
     <version>2.0.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.extjs</groupId> 
     <artifactId>gxt</artifactId> 
     <version>2.1.0</version> 
    </dependency> 
    <!-- etc --> 
    </dependencies> 
</project> 

這些組可以包含在你的主POM。

+1

另請參閱:http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-pom-best-practice.html –

1

最近,使用Maven Tiles的選項已成爲可能。該插件將允許您執行未由Maven 3提供的混入操作。但是,每個混入都需要一個已發佈的瓷磚僞影。

相關問題