Проекты Aggregator, как правило, каким-либо образом упаковывают все зависимые проекты (например, в виде архива EAR или WAR J2EE или в виде ZIP-файла дистрибутива), что требует создания всех зависимых проектов сначала .
Однако родительский POM должен быть создан до того, как его дочерние проекты.
Если родительский проект также является агрегатором, у вас есть циклическая зависимость:
Агрегатор зависит от дочерних зависимостей, которые зависят от родителя Агрегатора.
В нашей системе сборки мы решаем эту проблему, имея родительский POM-файл, который также является реактором его дочерних элементов. Один из дочерних элементов является агрегатором, который зависит от других дочерних элементов и создает артефакт распределения. Разрешение зависимостей Maven позволяет нам создавать pom верхнего уровня, который активирует все дочерние элементы в правильном порядке, с последним проектом агрегатора.