Что такое "реактор" в 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  

источник

Другие вопросы по тегам