web-dev-qa-db-fra.com

Qu'est-ce que le "réacteur" à Maven?

J'ai lu sur le réacteur Maven et je suis confus par son utilisation terminologique. J'ai lu qu'un multi-module est un réacteur, que vous pouvez manipuler le réacteur maven et que le réacteur est un plugin. Quel est exactement le réacteur?

95
harschware

Le réacteur est la partie de Maven qui lui permet d'exécuter un objectif sur un ensemble de modules. Comme mentionné dans le Maven 1.x documentation sur les constructions multi-modules (le concept de réacteur était déjà là dans Maven 1.x), tandis que les modules sont unité discrète de travaux, ils peuvent être rassemblés en utilisant le réacteur pour les construire simultanément et:

Le réacteur détermine l'ordre de construction correct à partir des dépendances indiquées par chaque projet dans leurs descripteurs de projet respectifs, puis exécutera un ensemble d'objectifs déclaré. Il peut être utilisé à la fois pour des projets de construction et d'autres objectifs, tels que la génération de sites.

Comme expliqué, le réacteur est ce qui rend les constructions multi-modules possibles: il calcule le graphique dirigé des dépendances entre les modules, dérive l'ordre de construction de ce graphique (c'est pourquoi les dépendances cycliques sont interdites, ce qui est une bonne chose de toute façon), puis exécute des objectifs sur les modules. En d'autres termes, une " construction multi-modules " est une " construction du réacteur "et une" construction de réacteur "est une" construction multi-modules ".

Dans Maven 2.x, le support des builds multi-modules a été considérablement amélioré et le réacteur est devenu transparent pour les utilisateurs de Maven. Mais il est toujours là et est utilisé sous le capot.

En septembre 2008 (c'est-à-dire longtemps après le déploiement de Maven 2), un plugin réacteur a été créé pour permettre d'interagir (à nouveau) plus étroitement avec le réacteur Maven. Brett Porter a blogué à ce sujet dans Reactor: My New Favorite Maven Plugin .

La plupart des fonctionnalités du plugin Reactor sont désormais prises en charge nativement (depuis Maven 2.1.0). Voir Trucs et astuces Maven: Options avancées des réacteurs .

151
Pascal Thivent

Reactor est utilisé lorsqu'un projet a plusieurs modules.

Les travaux réalisés par réacteur sont:

  • Collecte des détails du module
  • Tri de l'ordre en fonction des dépendances
  • Construit les projets dans l'ordre

À partir de la version Maven 2.1, il existe de nouvelles options de ligne de commande Maven qui vous permettent de manipuler la façon dont Maven construira des projets multimodules. Ces nouvelles options sont:

-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  

source

6
Premraj