2010-02-16 98 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提供的混入操作。但是,每个混入都需要一个已发布的瓷砖伪影。

相关问题