2010-01-12 7 views
78

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

risposta

136

Il reattore è la parte di Maven che consente di eseguire un obiettivo su un insieme di moduli. Come accennato nella 1.x Maven documentation on multi-modules builds (concetto reattore era già presente in Maven 1.x), mentre i moduli sono un'unità distinta di lavoro, possono essere raccolti insieme utilizzando il reattore per costruire simultaneamente e:

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

Come spiegato, il reattore è ciò che rende più moduli costruisce possibile: calcola il grafo orientato di dipendenze tra i moduli, deriva l'ordine di generazione da questo grafico (ecco perché dipendenze cicliche sono consentite, che è bene comunque) e quindi esegue gli obiettivi sui moduli. In altre parole, un "multi-moduli costruire" è una "reattore accumulo" ed una "reattore accumulo" è un "multi-moduli costruire".

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

Nel settembre 2008 (vale a dire molto tempo dopo il lancio di Maven 2), è stato creato uno reactor plugin per consentire di interagire (di nuovo) più strettamente con il reattore Maven. Brett Porter ne ha scritto il blog in Reactor: My New Favourite Maven Plugin.

La maggior parte delle funzionalità del plugin del reattore sono ora supportate nativamente (dal Maven 2.1.0). Vedi Maven Tips and Tricks: Advanced Reactor Options.

+9

Perché il sito Maven dicono che questo plugin è "in pensione"? –

+2

Perché il plugin del reattore è un plugin che (solo) "parla" al reattore reale. Quindi non lo stesso reattore è in pensione ma un plugin ad esso correlato. – Lonzak

2

Il reattore viene utilizzato quando un progetto dispone di più moduli.

I lavori realizzati da reattore sono:

  • Raccolta i dettagli del modulo
  • ordinamento l'ordine sulla base di dipendenze
  • Costruisce i progetti in ordine

A partire dalla versione Maven 2.1 ci sono nuove opzioni di riga di comando di Maven che ti permettono di manipolare il modo in cui Maven costruirà progetti multimodule. 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 

source

Problemi correlati