Что плохого в построении родителя?
На самом деле, в Maven есть два разных понятия (которые обычно используются одновременно):
- родитель POM
- Модули агрегации
Первый - это определение всего, что является общим для всех детей. Вы определяете родителя как упакованный в pom проект и можете установить его в своем хранилище.
Когда вы создаете дочерний элемент этого родителя, Maven2 извлекает этот родительский элемент для объединения родительского pom с дочерним pom. Вы можете просмотреть весь файл pom.xml, выполнив команду mvn help:effective-pom
.
В этом случае родительский pom не будет построен, он будет просто извлечен из хранилища.
Второй случай - это проект, который содержит modules
список подпроектов. Принцип заключается в том, что каждая команда, которую вы запускаете в этом проекте, будет также выполняться на всех подмодулях. Порядок модулей будет определяться Reactor, который будет проверять зависимости между модулями, чтобы определить, какой модуль должен быть построен раньше других. Если нет никаких зависимостей, тогда он возьмет список модулей, как они определены в родительском pom.xml.
В этом случае, если вы запустите команду для корневого проекта, Maven2 сначала создаст корневой проект, а затем субмодули. Вы не можете пропустить создание корневого проекта.
<Ч />
Редактировать, благодаря комментарию RichSeller
Полное объяснение различий между несколькими модулями (проект агрегации) и наследованием (родительский проект) можно найти в книге Maven, здесь .