Что такое «реактор» в Maven?

105

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

резьба
источник

Ответы:

164

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

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

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

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

В сентябре 2008 года (то есть спустя много времени после развертывания Maven 2) был создан плагин реактора , чтобы сделать возможным (снова) более тесно взаимодействовать с реактором Maven. Бретт Портер написал об этом в своем блоге Reactor: My New Favorite Maven Plugin .

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

Паскаль Тивент
источник
10
Почему на сайте maven сказано, что этот плагин "устарел"?
Моппарти Равиндранат
4
Потому что плагин реактора - это плагин, который (только) «разговаривает» с реальным реактором. Так что не сам реактор списан, а связанный с ним плагин.
Lonzak
8

Reactor используется, когда в проекте много модулей.

Работа, выполняемая реактором:

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

Начиная с версии 2.1, появились новые параметры командной строки, которые позволяют вам управлять способом, которым 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  

источник

Премрадж
источник