Что такое "реактор" в Maven?

Я читал о реакторе Maven и смущен его использованием терминологии. Я читал, что мультимодуль - это реактор, который вы можете манипулировать реактором maven и что реактор является плагином. Что такое реактор?

Ответ 1

Реактор является частью Maven, что позволяет ему выполнять цель на множестве модулей. Как упоминалось в документации Maven 1.x для сборки нескольких модулей (концепция реактора уже была в Maven 1.x), тогда как модули дискретную единицу работы, они могут быть собраны вместе с использованием реактора для их одновременного создания и:

Реактор определяет правильный порядок сборки из зависимостей, указанных каждым проектом в их соответствующих дескрипторах проекта, и затем выполнит заданный набор целей. Он может использоваться как для строительных проектов, так и для других целей, таких как создание сайта.

Как объяснялось, реактор - это то, что делает возможным создание нескольких модулей: он вычисляет ориентированный график зависимостей между модулями, выводит порядок построения из этого графика (почему циклические зависимости запрещены, что хорошо в любом случае), а затем выполняет задачи по модулям. Другими словами, "сборка с несколькими модулями" представляет собой "сборку реактора", а "сборка реактора" представляет собой "сборку нескольких модулей".

В Maven 2.x поддержка многомодульных сборок была значительно улучшена, и реактор стал прозрачным для пользователей Maven. Но он все еще там и используется под капотом.

В сентябре 2008 года (т.е. через долгое время после развертывания Maven 2) был создан плагин реактора чтобы можно было взаимодействовать (снова) более тесно с реактором Maven. Бретт Портер писал об этом в Реактор: Мой новый любимый плагин Maven.

Большая часть возможностей плагина реактора теперь поддерживается на месте (начиная с Maven 2.1.0). См. Советы и подсказки Maven: расширенные параметры реактора.

Ответ 2

Реактор используется, когда проект имеет мультимодуль.

Работы, выполняемые реактором, заключаются в следующем:

  • Сбор сведений о модуле
  • Сортировка порядка на основе зависимостей
  • Строит проекты в порядке

Начиная с версии 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  

источник