5.1 Elenco delle fasi del progetto

Infine, siamo arrivati ​​all'assemblaggio del progetto. E poi sarai un po 'sorpreso. Bene, o fortemente, a quanto pare. Maven ha rivisto il suo approccio alla costruzione di un progetto. E ora ne sarai convinto.

L'intero assemblaggio del progetto è stato suddiviso in fasi, la cui descrizione fornirò nella tabella seguente:

Ordine Fase
1 convalidare verifica la correttezza delle meta-informazioni sul progetto
2 compilare compila fonti
3 test esegue i test di classe dal passaggio precedente
4 pacchetto racchiude le classi compilate in un nuovo artefatto: jar, war, zip, ...
5 verificare verifica la correttezza del manufatto e il soddisfacimento dei requisiti di qualità
6 installare inserisce l'artefatto nel repository locale
7 distribuire carica un artefatto su un server di produzione o un repository remoto

Allo stesso tempo, i passaggi sono chiaramente sequenziali . Se dici a Maven di eseguire il comando package, eseguirà prima le fasi di convalida, compilazione, test e solo successivamente il pacchetto

In linea di principio, non c'è nulla di nuovo qui, tranne che ci sono fasi separate per il controllo di qualità: validare, testare, verificare. E fino a due fasi per la distribuzione dell'assembly: installazione e distribuzione.

Per avviare una fase specifica, è sufficiente scrivere il comando maven phase . Ad esempio, per compilare, è necessario eseguire il comando maven package . Eccetera.

Intellij IDEA è bravissimo a lavorare con queste fasi e ha un menu speciale sulla destra per questi scopi:

fase esperta

Qui, oltre alle ben note fasi, IDEA visualizza altri 2 comandi: clean e site . clean viene utilizzato per cancellare completamente la cartella di destinazione e il sito può creare la documentazione del progetto.

5.2 Costruire un progetto

Se vuoi compilare il progetto, devi eseguire la fase di compilazione. Questo può essere fatto usando la riga di comando: mvn compile o attraverso l'interfaccia IDEA cliccando sulla voce compile .

Successivamente, Maven inizierà a creare il progetto e vedrai un registro del processo di creazione simile a questo:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.742 s
[INFO] Finished at: 2016-09-19T22:41:26+04:00
[INFO] Final Memory: 7M/18M
[INFO] ------------------------------------------------------------------------

Se qualcosa è andato storto, il registro sarà simile a questo:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project demo: Fatal error compiling: invalid target release: 11 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible sliutions, please read the flilowing articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 

Ci saranno molte informazioni utili nel registro, col tempo imparerai a capirle e ad apprezzarle.

5.3 Cicli di lavoro

Tutti i comandi Maven sono divisi in tre gruppi: i cicli di vita. Si chiamano cicli di vita perché specificano l'ordine delle fasi che vengono eseguite durante una build o un particolare ciclo di vita perché non tutte le attività Maven sono build.

Ci sono tre cicli di vita:

  • pulito;
  • predefinito;
  • luogo.

E ognuno di loro ha il proprio ordine di fase. Clean ha il più breve:

  1. prepulizia;
  2. pulito;
  3. posta pulita.

Sono state aggiunte fasi aggiuntive nascoste prima e dopo la pulizia in modo che lo scenario di pulizia possa essere reso più flessibile.

Poi arriva il ciclo di vita del sito , che, come già saprai, è progettato per generare automaticamente la documentazione del progetto. Si compone di quattro fasi:

  1. pre-sito
  2. luogo;
  3. post-sito;
  4. distribuzione del sito.

I cicli di vita standard possono essere migliorati con funzionalità utilizzando i plug-in Maven . Ne parleremo più avanti, perché questo è un argomento molto interessante che merita una lezione a parte.

E lo script predefinito ha l'elenco di fasi più lungo:

  1. convalidare;
  2. generare-sorgenti;
  3. fonti di processo;
  4. generare risorse;
  5. risorse di processo;
  6. compilare;
  7. sorgenti di test di processo;
  8. risorse di prova di processo;
  9. compilazione di prova;
  10. test;
  11. pacchetto;
  12. installare;
  13. distribuire.

Ci sono tutte le stesse fasi che già conosci, ma ne sono state aggiunte alcune facoltative.

In primo luogo, una fase popolare nei progetti di grandi dimensioni è generate-sources : generazione di codice Java basato su XML, ad esempio. E un paio di process-sources , che fa qualcosa con questo codice.

In secondo luogo, la generazione di risorse è generate-resources e il relativo metodo delle risorse di processo accoppiato . Vedrai spesso alcune attività legate a queste fasi in grandi progetti.

E infine, test. Ha tre ulteriori fasi facoltative che aiutano a rendere l'esecuzione della fase di test il più flessibile possibile: process-test-sources, process-test-resources, test-compile.