122 votes

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

J'ai lu à propos du 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. Qu'est-ce que le réacteur exactement?

175voto

Pascal Thivent Points 295221

Le réacteur est la partie de Maven qui lui permet d'exécuter un goal sur un ensemble de modules. Comme mentionné dans la documentation de Maven 1.x sur la construction multi-modules (le concept de réacteur était déjà présent dans Maven 1.x), tandis que les modules sont des unités de travail discrètes, ils peuvent être regroupé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 déclarées par chaque projet dans leurs descripteurs de projet respectifs, puis exécute un ensemble déclaré de goals. Il peut être utilisé à la fois pour la construction de projets et pour d'autres goals, tels que la génération de site.

Comme expliqué, le réacteur est ce qui rend possibles les constructions multi-modules : il calcule le graphe dirigé des dépendances entre les modules, dérive l'ordre de construction à partir de ce graphe via un tri topologique (c'est pourquoi les dépendances cycliques sont interdites) puis exécute des goals sur les modules. En d'autres termes, une "construction multi-modules" est une "construction par réacteur" et une "construction par réacteur" est une "construction multi-modules".

Dans Maven 2.x, le support des constructions multi-modules a été grandement amélioré et le réacteur est devenu transparent pour les utilisateurs de Maven. Mais il est toujours là et est utilisé en interne.

En septembre 2008 (c'est-à-dire longtemps après le déploiement de Maven 2), un plugin réacteur a été créé pour rendre possible d'interagir (à nouveau) plus étroitement avec le réacteur Maven. Brett Porter en a parlé dans son blog Reactor: Mon nouveau plugin Maven préféré.

La plupart des fonctionnalités du plugin réacteur sont désormais prises en charge nativement (depuis Maven 2.1.0). Voir Maven Tips and Tricks: Options avancées du réacteur.

11 votes

Pourquoi le site de Maven indique-t-il que ce plugin est "retiré" ?

6 votes

Parce que le plugin du réacteur est un plugin qui "communique" uniquement avec le réacteur réel. Ainsi, ce n'est pas le réacteur lui-même qui est retiré mais un plugin associé à celui-ci.

15voto

premraj Points 120

Le réacteur est utilisé lorsqu'un projet a plusieurs modules.

Le travail effectué par le réacteur est le suivant :

  • Collecte des détails des modules
  • Tri de l'ordre en fonction des dépendances
  • Construction des projets dans l'ordre

À partir de la version 2.1, il y a de nouvelles options en ligne de commande qui vous permettent de manipuler la manière dont Maven construira les projets multi-modules. Ces nouvelles options sont :

-rf, --resume-from
    Reprendre le réacteur à partir du projet spécifié
-pl, --projects
    Construire les projets de réacteur spécifiés au lieu de tous les projets
-am, --also-make
    Si une liste de projets est spécifiée, construire également les projets requis par la liste
-amd, --also-make-dependents
    Si une liste de projets est spécifiée, construire également les projets qui dépendent des projets de la liste

Plus de détails :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X