В чем выгода разделения агрегаторных и родительских проектов? - PullRequest
3 голосов
/ 09 июля 2009

Я читал, что якобы хорошая идея отделить проект агрегатора (тот, у которого есть все объявления модуля) от проекта родителя / зависимости (тот, у которого есть общие или общие зависимости). Так что родительский проект не тот, который вы используете для полной сборки.

Почему это?

Ответы [ 2 ]

2 голосов
/ 09 июля 2009

В большой среде вы можете захотеть иметь родителей, которые определяют общее поведение для классов проектов (например, родитель сервлета, родитель портлета, родитель войны и т. Д.). Поскольку в Maven нет множественного наследования, вам необходимо иметь гигантский родительский POM со всем этим содержимым и некоторыми сложными соглашениями о профилях или несколько родителей, по одному для каждого типа проекта.

Подобные проекты не обязательно строятся вместе (на самом деле обычно это не так). Поэтому для создания ваших проектов для одного выпуска требуется агрегатор, который определяет соответствующие модули для сборки.

Существует раздел Maven book , в котором описывается различие между агрегацией и наследованием. Это может помочь вашему пониманию.

0 голосов
/ 09 июля 2009

Проекты Aggregator, как правило, каким-либо образом упаковывают все зависимые проекты (например, в виде архива EAR или WAR J2EE или в виде ZIP-файла дистрибутива), что требует создания всех зависимых проектов сначала .

Однако родительский POM должен быть создан до того, как его дочерние проекты.

Если родительский проект также является агрегатором, у вас есть циклическая зависимость:

Агрегатор зависит от дочерних зависимостей, которые зависят от родителя Агрегатора.

В нашей системе сборки мы решаем эту проблему, имея родительский POM-файл, который также является реактором его дочерних элементов. Один из дочерних элементов является агрегатором, который зависит от других дочерних элементов и создает артефакт распределения. Разрешение зависимостей Maven позволяет нам создавать pom верхнего уровня, который активирует все дочерние элементы в правильном порядке, с последним проектом агрегатора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...