2

我正在尝试创建一个聚合 POM,以从头开始构建我们所有的项目。假设我有一个父项目和 2 个代码项目。这些都在不同的源代码树中。

家长:

<groupId>com.example</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>

项目一:

<parent>
    <groupId>com.example</groupId>
    <artifactId>parent</artifactId>
    <version>1.0-SNAPSHOT</version>
    <relativePath/>
</parent>

<artifactId>project-A</artifactId>
<packaging>jar</packaging>

项目B:

<parent>
    <groupId>com.example</groupId>
    <artifactId>parent</artifactId>
    <version>1.0-SNAPSHOT</version>
    <relativePath/>
</parent>

<artifactId>project-B</artifactId>
<packaging>jar</packaging>

现在我正在尝试创建一个单独的聚合器 POM 来将所有这些构建在一起,如下所示:

<groupId>com.example</groupId>
<artifactId>aggregator</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>

<modules>
    <module>path/to/parent</module>
    <module>path/to/project-A</module>
    <module>path/to/project-B</module>
</modules>

mvn clean installaggregator项目失败,因为反应堆找不到<parent>两个代码项目的。原因很明显 - 该parent项目是反应器的一部分,因此工件在构建开始时不存在。

有没有办法实现这个反应堆构建?

4

3 回答 3

2

您需要在父 POM 中指定以下部分:

<modules>
<module>path/to/parent</module>
<module>path/to/project-A</module>
<module>path/to/project-B</module> 
</modules>
于 2016-07-09T15:32:54.873 回答
2

你只需要给mvn install父母一次。

然后它将在您的本地存储库中,并且聚合器会找到它。从那时起,反应器将识别继承并始终首先重建父级。

于 2016-07-20T11:18:38.843 回答
2

比你应该创建一个父母:

 pom.xml (inherit from company)
   +--- project-A
   +--- project-B 

这将解决这些问题...

于 2016-07-10T17:19:47.650 回答