5.1 Liste over prosjektfaser

Til slutt kom vi til monteringen av prosjektet. Og da blir du litt overrasket. Vel, eller sterkt, som det viser seg. Maven har revidert sin tilnærming til å bygge et prosjekt. Og nå vil du bli overbevist om det.

Hele monteringen av prosjektet ble delt inn i faser, hvis beskrivelse jeg vil gi i tabellen nedenfor:

rekkefølge Fase
1 validere kontrollerer riktigheten av metainformasjon om prosjektet
2 kompilere samler kilder
3 test kjører klassetestene fra forrige trinn
4 pakke pakker de kompilerte klassene inn i en ny artefakt: jar, war, zip, ...
5 bekrefte kontrollerer artefaktens korrekthet og tilfredsstillelse av kvalitetskrav
6 installere legger gjenstanden i det lokale depotet
7 utplassere laster opp en artefakt til en produksjonsserver eller eksternt depot

Samtidig er trinnene tydelig sekvensielle . Hvis du ber Maven om å kjøre pakkekommandoen, vil den først kjøre validerings-, kompilerings-, testfasene og først deretter pakke

I prinsippet er det ikke noe nytt her, bortsett fra at det er separate faser for kvalitetskontroll: validere, teste, verifisere. Og så mange som to faser for distribusjon av sammenstillingen - installer og distribuer.

For å starte en spesifikk fase er det nok å skrive maven phase- kommandoen . For å bygge, må du for eksempel kjøre maven-pakkekommandoen . Etc.

Intellij IDEA er flinke til å jobbe med disse fasene, og den har en spesiell meny til høyre for disse formålene:

maven fase

Her, i tillegg til de velkjente fasene, viser IDEA ytterligere 2 kommandoer: clean og site . clean brukes til å tømme målmappen fullstendig, og nettstedet kan lage prosjektdokumentasjon.

5.2 Bygge et prosjekt

Hvis du vil kompilere prosjektet, må du kjøre kompileringsfasen. Dette kan gjøres ved å bruke kommandolinjen: mvn compile eller gjennom IDEA-grensesnittet ved å klikke på kompileringselementet .

Etter det vil Maven begynne å bygge prosjektet, og du vil se en logg over byggeprosessen som ligner på denne:

[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] ------------------------------------------------------------------------

Hvis noe gikk galt, vil loggen se slik ut:

[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 

Det vil være mye nyttig informasjon i loggen, over tid vil du lære å forstå og sette pris på det.

5.3 Arbeidssykluser

Alle maven-kommandoer er delt inn i tre grupper - livssykluser. De kalles livssykluser fordi de spesifiserer rekkefølgen på fasene som kjører i løpet av et bygg eller en bestemt livssyklus fordi ikke alle Maven-aktiviteter er bygg.

Det er tre livssykluser:

  • ren;
  • misligholde;
  • nettstedet.

Og hver av dem har sin egen faserekkefølge. Clean har den korteste:

  1. pre clean;
  2. ren;
  3. stolpe rent.

Skjulte ekstra pre-clean- og post-clean-faser er lagt til slik at oppryddingsscenariet kan gjøres mer fleksibelt.

Deretter kommer nettstedets livssyklus , som, som du allerede vet, er designet for automatisk å generere prosjektdokumentasjon. Den består av fire faser:

  1. forhåndssted
  2. nettstedet;
  3. post-side;
  4. nettsted-distribusjon.

Standard livssykluser kan forbedres med funksjonalitet ved å bruke Maven-plugins . Vi skal snakke om dette senere, for dette er et veldig interessant tema som fortjener et eget foredrag.

Og standardskriptet har den lengste listen over faser:

  1. validere;
  2. generere-kilder;
  3. prosess-kilder;
  4. generere-ressurser;
  5. prosess-ressurser;
  6. kompilere;
  7. prosess-test-kilder;
  8. prosess-test-ressurser;
  9. test kompilere;
  10. test;
  11. pakke;
  12. installere;
  13. utplassere.

Det er alle de samme fasene du allerede vet om, men noen flere valgfrie er lagt til.

For det første er et populært stadium i store prosjekter generere-kilder : generering av Java-kode basert på XML, for eksempel. Og et par prosesskilder , som gjør noe med denne koden.

For det andre er genereringen av ressurser generere-ressurser og dens sammenkoblede prosessressurser -metoden . Du vil ofte se noen aktiviteter knyttet til disse fasene i store prosjekter.

Og til slutt, testing. Den har ytterligere tre valgfrie faser som bidrar til å gjøre kjøringen av testfasen så fleksibel som mulig: prosess-test-kilder, prosess-test-ressurser, test-kompilere.