Включая родительский проект в сборку реактора Maven

Я пытаюсь создать совокупный 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>

Проект Б:

<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 install на aggregator Проект не удается, потому что реактор не может найти <parent> из двух проектов кода. Причина очевидна - parent Проект является частью реактора и поэтому артефакт не существует в начале сборки.

Есть ли способ достичь этого строительства реактора?

3 ответа

Вам просто нужно mvn install родитель один раз.

Тогда он будет в вашем локальном хранилище, и агрегатор найдет его. С этого момента реактор распознает наследование и всегда сначала восстанавливает родительский объект.

Вам необходимо указать следующую часть в родительском POM:

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

Чем вы должны создать родителя:

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

Это решит эти проблемы...

Другие вопросы по тегам