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

105

J'ai lu sur le réacteur Maven et je suis confus par son utilisation de la terminologie. 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?

harschware
la source

Réponses:

164

Le réacteur est la partie de Maven qui lui permet d'exécuter un objectif sur un ensemble de modules. Comme mentionné dans la documentation Maven 1.x sur les constructions multi-modules (le concept de réacteur était déjà présent dans Maven 1.x), alors que les modules sont des unités de travail discrètes, 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és. 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 graphe dirigé des dépendances entre les modules, dérive l'ordre de construction de ce graphe (c'est pourquoi les dépendances cycliques sont interdites, ce qui est une bonne chose de toute façon) et exécute ensuite les objectifs sur les modules. En d'autres termes, une "construction multi-modules " est une " construction de réacteur " et une " construction de réacteur " est une "construction multi-modules ".

Dans Maven 2.x, la prise en charge des constructions multi-modules a été considérablement améliorée 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 (soit 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 en a parlé dans Reactor: My New Favorite Maven Plugin .

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

Pascal Thivent
la source
10
Pourquoi le site maven dit-il que ce plugin est "retiré"?
Mopparthy Ravindranath
4
Parce que le plugin réacteur est un plugin qui (uniquement) "parle" avec le réacteur réel. Ce n'est donc pas le réacteur lui-même qui est retiré mais un plugin qui lui est lié.
Lonzak
8

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

Le travail effectué par réacteur est:

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

À partir de la version 2.1, il existe de nouvelles options de ligne de commande qui vous permettent de manipuler la façon dont Maven construira des projets multi-modules. 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  

la source

Premraj
la source