Что такое "реактор" в Maven?
Я читал о реакторе Maven и меня смущает использование его терминологии. Я читал, что мультимодуль - это реактор, которым вы можете манипулировать реактором Maven, и что реактор является плагином. Что именно представляет собой реактор?
2 ответа
Реактор является частью Maven, которая позволяет ему выполнить цель на множестве модулей. Как упомянуто в документации Maven 1.x о сборках с несколькими модулями (концепция реактора уже была в Maven 1.x), хотя модули являются отдельной единицей работы, их можно собрать вместе, используя реактор для их одновременной сборки, и:
Реактор определяет правильный порядок сборки по зависимостям, указанным каждым проектом в соответствующих дескрипторах проекта, и затем выполняет заданный набор целей. Его можно использовать как для строительных проектов, так и для других целей, таких как создание сайта.
Как было объяснено, реактор - это то, что делает возможной многомодульную сборку: он вычисляет направленный граф зависимостей между модулями, извлекает порядок сборки из этого графа (поэтому циклические зависимости запрещены, что в любом случае хорошо), а затем выполняет цели на модули. Другими словами, " сборка нескольких модулей " - это " сборка реактора ", а " сборка реактора " - это " сборка многомодулей ".
В Maven 2.x поддержка многомодульных сборок была значительно улучшена, и реактор стал прозрачным для пользователей Maven. Но он все еще там и используется под капотом.
В сентябре 2008 года (т. Е. Спустя долгое время после развертывания Maven 2) был создан плагин реактора, позволяющий (снова) более тесно взаимодействовать с реактором Maven. Брет Портер писал об этом в Reactor: Мой новый любимый плагин Maven.
Большинство функций плагина реактора теперь поддерживаются изначально (начиная с Maven 2.1.0). См. Maven Tips and Tricks: дополнительные параметры Reactor.
Reactor is uses when a project have multi-module.
The works done by reactor are:
- Collecting the module details
- Sorting the order based on dependencies
- Builds the projects in order
Начиная с выпуска Maven 2.1, появились новые параметры командной строки Maven, которые позволяют вам манипулировать способом, которым Maven будет создавать многомодульные проекты. Эти новые опции:
-rf, --resume-from
Resume reactor from specified project
-pl, --projects
Build specified reactor projects instead of all projects
-am, --also-make
If project list is specified, also build projects required by the list
-amd, --also-make-dependents
If project list is specified, also build projects that depend on projects on the list