Qual è il "reattore" a Maven?


105

Ho letto del reattore Maven e sono confuso dal suo utilizzo della terminologia. Ho letto che un multi-modulo è un reattore, che puoi manipolare il reattore Maven e che il reattore è un plugin. Cos'è esattamente il reattore?

Risposte:


164

Il reattore è la parte di Maven che gli consente di eseguire un obiettivo su un insieme di moduli. Come menzionato nella documentazione di Maven 1.x sulle build multi-moduli (il concetto di reattore era già presente in Maven 1.x), mentre i moduli sono unità di lavoro discrete, possono essere raccolti insieme usando il reattore per costruirli simultaneamente e:

Il reattore determina l'ordine di compilazione corretto dalle dipendenze dichiarate da ciascun progetto nei rispettivi descrittori di progetto, quindi eseguirà una serie di obiettivi dichiarati. Può essere utilizzato sia per progetti di costruzione che per altri obiettivi, come la generazione di siti.

Come spiegato, il reattore è ciò che rende possibili build multi-modulo: calcola il grafico diretto delle dipendenze tra i moduli, ricava l'ordine di compilazione da questo grafico (ecco perché le dipendenze cicliche non sono consentite, il che è comunque una buona cosa) e quindi esegue gli obiettivi su i moduli. In altre parole, una " build multi-moduli " è una " build reattore " e una " build reattore " è una " build multi-moduli ".

In Maven 2.x, il supporto delle build multi-modulo è stato notevolmente migliorato e il reattore è diventato trasparente per gli utenti Maven. Ma è ancora lì e viene utilizzato sotto il cofano.

Nel settembre 2008 (cioè molto tempo dopo il lancio di Maven 2), è stato creato un plug-in per il reattore per consentire di interagire (di nuovo) più da vicino con il reattore Maven. Brett Porter ne ha scritto sul blog in Reactor: My New Favorite Maven Plugin .

La maggior parte delle funzionalità del plug-in del reattore sono ora supportate in modo nativo (da Maven 2.1.0). Vedi Maven Tips and Tricks: Advanced Reactor Options .


10
Perché il sito di Maven dice che questo plugin è "ritirato"?
Mopparthy Ravindranath,

4
Perché il plugin del reattore è un plugin che (solo) "parla" al reattore vero e proprio. Quindi non il reattore stesso viene ritirato ma un plugin ad esso correlato.
Lonzak

8

Reactor viene utilizzato quando un progetto ha più moduli.

Il lavoro svolto dal reattore è:

  • Raccolta dei dettagli del modulo
  • Ordinamento dell'ordine in base alle dipendenze
  • Costruire i progetti in ordine

A partire dalla versione 2.1, ci sono nuove opzioni della riga di comando che ti consentono di manipolare il modo in cui Maven costruirà progetti multi-modulo. Queste nuove opzioni sono:

-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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.