Qual é o “reator” em Maven?

105

Tenho lido sobre o reator Maven e estou confuso com o uso da terminologia. Eu li que um multimódulo é um reator, que você pode manipular o reator maven e que o reator é um plugin. O que exatamente é o reator?

harschware
fonte

Respostas:

164

O reator é a parte do Maven que permite executar uma meta em um conjunto de módulos. Conforme mencionado na documentação do Maven 1.x em compilações de vários módulos (o conceito de reator já estava lá no Maven 1.x), embora os módulos sejam unidades de trabalho discretas, eles podem ser reunidos usando o reator para criá-los simultaneamente e:

O reator determina a ordem de construção correta a partir das dependências declaradas por cada projeto em seus respectivos descritores de projeto e, então, executará um conjunto declarado de metas. Ele pode ser usado para projetos de construção e outros objetivos, como a geração de sites.

Conforme explicado, o reator é o que torna possível as compilações de vários módulos: ele calcula o gráfico direcionado de dependências entre os módulos, deriva a ordem de compilação deste gráfico (é por isso que as dependências cíclicas não são permitidas, o que é bom de qualquer maneira) e, em seguida, executa metas em os módulos. Em outras palavras, uma "construção de vários módulos " é uma " construção de reator " e uma " construção de reator " é uma "construção de vários módulos ".

No Maven 2.x, o suporte a construções de vários módulos foi muito melhorado e o reator se tornou transparente para os usuários do Maven. Mas ele ainda está lá e é usado sob o capô.

Em setembro de 2008 (ou seja, muito tempo após o lançamento do Maven 2), um plug - in do reator foi criado para possibilitar uma interação (novamente) mais próxima com o reator Maven. Brett Porter postou sobre isso em Reactor: Meu novo plugin Maven favorito .

A maioria dos recursos do plug-in do reator agora tem suporte nativo (desde o Maven 2.1.0). Consulte Dicas e truques do Maven: opções avançadas do reator .

Pascal Thivent
fonte
10
Por que o site do maven diz que esse plug-in está "aposentado"?
Mopparthy Ravindranath
4
Porque o plugin do reator é um plugin que (apenas) "fala" com o reator real. Portanto, não o próprio reator foi retirado, mas um plugin relacionado a ele.
Lonzak de
8

O Reactor é usado quando um projeto tem vários módulos.

O trabalho realizado pelo reator é:

  • Coletando os detalhes do módulo
  • Classificando a ordem com base nas dependências
  • Construindo os projetos em ordem

A partir da versão 2.1, há novas opções de linha de comando que permitem manipular a maneira como o Maven construirá projetos de vários módulos. Essas novas opções são:

-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  

fonte

Premraj
fonte