Руководство по работе с несколькими модулями
Как показано во введении к POM, Maven поддерживает агрегирование проектов в дополнение к наследованию проектов. В этом разделе описывается, как Maven обрабатывает проекты с несколькими модулями и как вы можете работать с ними более эффективно. Реактор
Механизм в Maven, который обрабатывает многомодульные проекты, называется реактором. Эта часть ядра Maven выполняет следующие действия:
- Собирает все доступные модули для сборки
- Сортировка проектов в правильном порядке сборки
- Строит выбранные проекты по порядку
Реакторная сортировка
Поскольку модули в составе многомодульной сборки могут зависеть друг от друга, важно, чтобы реактор отсортировал все проекты таким образом, чтобы гарантировать создание любого проекта до того, как он потребуется.
При сортировке проектов соблюдаются следующие отношения:
- зависимость проекта от другого модуля в сборке
- объявление плагина, где плагин является другим модулем в сборке
- зависимость плагина от другого модуля в сборке
- объявление расширения сборки для другого модуля в сборке
- порядок, объявленный в элементе
<modules>
(если не применяется другое правило)
Обратите внимание, что используются только «экземпляры» ссылок - элементы dependencyManagement и pluginManagement не вызывают изменения порядка сортировки реактора.
Параметры командной строки
Для использования преимуществ реактора не требуется специальной конфигурации, однако его поведение можно настроить.
Доступны следующие параметры командной строки:
--resume-from
- возобновляет работу реактора из указанного проекта (например, при отказе в середине)--also-make
- строить указанные проекты и любые их зависимости в реакторе--also-make-dependents
- строить указанные проекты и все, что от них зависит--fail-fast
- поведение по умолчанию - при сбое сборки модуля немедленно остановить сборку в целом--fail-at-end
- если конкретная сборка модуля не удалась, продолжите работу остальной части реактора и вместо этого сообщайте обо всех отказавших модулях в конце--non-recursive
- не использовать сборку реактора, даже если текущий проект объявляет модули и просто строит проект в текущем каталоге
Дополнительные сведения об этих переключателях см. В справочнике по интерфейсу командной строки Maven.