是否有可能拆分maven pom文件?

时间:2010-02-16 06:43:33

标签: maven-2

是否可以包含几个较小的pom文件来创建父pom文件。 (例如,我想将报告拆分,将部分构建到自己的pom中并将它们包含在父pom中)以便有效地管理它们

3 个答案:

答案 0 :(得分:16)

如果您使用的是Maven 2,则只需创建多个父级别即可。第一个pom.xml pom1 )将定义基本属性(例如存储库)。第二个pom.xml pom2 ), pom1 <parent>,将定义报告信息。等等......最后,“真实”pom.xml将继承自 pom2 ,并将定义自己的属性。

您可以根据需要创建任意数量的父级别(当然,如果您有5个父级别,则会更难维护。)

请注意,Maven 3谈到引入mixin concept,这样您就可以将pom.xml分段为多个文件,但看起来像that is not happening now until maven 4

答案 1 :(得分: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中。

答案 2 :(得分:1)

最近,使用Maven Tiles的选项已成为可能。该插件将允许您执行Maven 3未提供的mixin操作。但是,每个mixin都需要一个已发布的tile artefact。