【问题标题】:Is it possible to split maven pom files?是否可以拆分 maven pom 文件?
【发布时间】:2010-02-16 06:43:32
【问题描述】:

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

【问题讨论】:

    标签: maven-2


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      如果您使用的是 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

      【讨论】:

      • 猜猜,我会等待Maven 3中的mixin功能
      • @Joshua Maven 3 已经可用,即使是 beta 版本,它也相当稳定。 Maven 3 提供与 Maven 2 pom.xml 的 100% 兼容性。它已被最新版本的 NetBeans、m2eclipse 或 IntelliJ 使用。
      • Maven 3.0还没有提供 mixins
      • 是的,确实如此。对不起!
      • @BrettPorter 最新版本(3.04)的maven是否支持mixin?
      【解决方案3】:

      不完全是。您不能包含在较小的 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 中。

      猜你喜欢
      • 1970-01-01
      • 2011-03-20
      • 1970-01-01
      • 2011-12-12
      • 1970-01-01
      • 2019-08-07
      • 1970-01-01
      • 1970-01-01
      • 2017-09-05
      相关资源
      最近更新 更多