Включая родительский проект в сборку реактора 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
Это решит эти проблемы...