【发布时间】:2010-02-16 06:43:32
【问题描述】:
是否可以包含几个较小的 pom 文件来创建父 pom 文件。 (例如,我想拆分报告,将部分构建到自己的 pom 中并将它们包含在父 pom 中)以有效地管理它们
【问题讨论】:
标签: maven-2
是否可以包含几个较小的 pom 文件来创建父 pom 文件。 (例如,我想拆分报告,将部分构建到自己的 pom 中并将它们包含在父 pom 中)以有效地管理它们
【问题讨论】:
标签: maven-2
最近,使用Maven Tiles 的选项已成为可能。该插件将允许您执行 Maven 3 未提供的 mixin 操作。但是,每个 mixin 都需要一个已发布的 tile artefact。
【讨论】:
如果您使用的是 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
【讨论】:
pom.xml 的 100% 兼容性。它已被最新版本的 NetBeans、m2eclipse 或 IntelliJ 使用。
不完全是。您不能包含在较小的 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 中。