29

我有 3 个 Maven 项目

  • 网页组件
  • 数据组件
  • 服务组件

当我构建每个项目时,我必须进入每个文件夹并在每个项目上运行 mvn clean install。

我研究了多模块项目,我看到的大部分资源表明我必须改变现有项目的结构。

是否有可能有一个新项目来构建每个独立项目,而我不必对现有项目中的任何内容(包括它们各自的 pom 文件)进行任何更改?

我可能可以通过编写一个构建每个项目的简单批处理文件来实现这一点,但是可以使用 Maven 吗?

4

2 回答 2

47

您正在寻找没有继承的 Maven 聚合。如所引用的页面所示,您只需创建一个新的 POM,其包装为“pom”并且具有“模块”列表。模块是另一个 Maven 项目的相对路径:

<project>
  ...
  <packaging>pom</packaging>
  ...
  <modules>
    <module>foo</module> <!-- module is in a subdirectory of this project -->
    <module>../bar</module> <!-- module is a sibling to this project -->
    <module>../../../other-projects/baz</module> <!-- somewhere else entirely -->
  </modules>
</project>

构建这样一个 pom(称为“聚合器”)时的默认行为是构建所有模块,就像您在每个模块目录中使用相同的参数执行 Maven 一样。

于 2012-05-19T15:28:57.737 回答
5

如果您在将它们命名为模块(模块名称 = 子目录名称)的三个项目上方的目录中添加聚合器项目,它将构建它们而无需对它们自己的 POM 进行任何更改。他们不需要将其作为父母来引用。

于 2012-05-19T15:05:43.360 回答