2013-08-16 2 views
5

in Eclipse, quando Maven è abilitato, c'è un file pom.xml da compilare con Maven. Inoltre, Eclipse ha un'opzione "crea automaticamente" nel suo menu di progetto."build automatically" e esegui il test in Eclipse

La "build automaticamente" viene creata automaticamente con Maven, oppure è necessario deselezionarla, perché quando Maven è abilitato, non abbiamo più bisogno della build di Eclipse nel sistema di build?

risposta

8

Eclipse m2e eseguirà gli obiettivi del plug-in per i quali sono associati i collegamenti del ciclo di vita. Non lo so (e sono in grado di trovare) quanto specifiche fasi vengono eseguiti, ma per esperienza so che:

  • per il funzionamento normale, almeno compilare Viene eseguito.
  • per l'esecuzione di test (ad esempio casi di test JUnit), almeno test-compile viene eseguito.

Si noti che non ha tutti i possibili attacchi, e andando in giro that problem è a volte problematic. Quindi, di solito, avere entrambi dovrebbe andare bene, e in effetti eviterà alcune incongruenze dovute allo stato compilato che non si aggiorna mentre si codifica.

Tuttavia se si dispone di plugin che vengono ignorati da M2E, si dovrebbe in realtà spegnere "generare automaticamente" fuori quando si necessario essere certi la build completa correttamente.

Ad esempio, utilizzando Maven Properties plugin, se non è stata fornita un'associazione e si imposta m2e da ignorare, si disporranno di risorse con valori di proprietà fuori whack. Il problema può verificarsi in particolare quando si esegue una build "Maven" (ad esempio dal menu di scelta rapida con clic con il pulsante destro del mouse), quindi si effettua una modifica nel codice e lo si salva.

2

Avete bisogno di entrambi. Ecco perché:

Il compilatore incorporato Eclipse viene utilizzato per la compilazione incrementale, ad esempio quando si salva il codice. Ma la costruzione completa del progetto viene eseguita usando maven e la configurazione del progetto in pom.xml.

+3

Questo non è vero - 'm2e' esegue effettivamente i collegamenti del ciclo di vita che ha, non è solo la compilazione di codice incrementale. Un esempio banale qui è il filtraggio delle risorse. –