5.1 Lijst met projectfasen

Eindelijk kwamen we bij de montage van het project. En dan zul je een beetje verrast zijn. Nou ja, of sterk, zo blijkt. Maven heeft zijn aanpak voor het bouwen van een project herzien. En nu zul je ervan overtuigd zijn.

De gehele montage van het project was verdeeld in fasen, waarvan ik de beschrijving in de onderstaande tabel zal geven:

volgorde Fase
1 valideren controleert de juistheid van meta-informatie over het project
2 compileren verzamelt bronnen
3 test voert de klassentests uit de vorige stap uit
4 pakket verpakt de gecompileerde klassen in een nieuw artefact: jar, war, zip, ...
5 verifiëren controleert de juistheid van het artefact en de tevredenheid van kwaliteitseisen
6 installeren plaatst het artefact in de lokale repository
7 aanwenden uploadt een artefact naar een productieserver of externe repository

Tegelijkertijd zijn de stappen duidelijk opeenvolgend . Als u Maven vertelt om de pakketopdracht uit te voeren, voert het eerst de validatie-, compileer-, testfasen uit en pas daarna het pakket

In principe is hier niets nieuws, behalve dat er aparte fasen zijn voor kwaliteitscontrole: valideren, testen, verifiëren. En maar liefst twee fasen voor het implementeren van de assembly: installeren en implementeren.

Om een ​​specifieke fase te starten volstaat het om het commando maven phase te schrijven . Om bijvoorbeeld te bouwen, moet u de opdracht maven package uitvoeren . Enz.

Intellij IDEA is geweldig in het werken met deze fasen en heeft voor deze doeleinden een speciaal menu aan de rechterkant :

maven-fase

Hier geeft IDEA naast de bekende fasen nog 2 commando's weer: clean en site . clean wordt gebruikt om de doelmap volledig te wissen en de site kan projectdocumentatie maken.

5.2 Bouwen aan een project

Als u het project wilt compileren, moet u de compileerfase uitvoeren. Dit kan worden gedaan via de opdrachtregel: mvn compile of via de IDEA-interface door op het compile- item te klikken .

Daarna begint Maven met het bouwen van het project en ziet u een logboek van het bouwproces dat er ongeveer zo uitziet:

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

Als er iets mis is gegaan, ziet het logboek er als volgt uit:

[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 

Er zal veel nuttige informatie in het logboek staan, na verloop van tijd zul je het leren begrijpen en waarderen.

5.3 Werkcycli

Alle maven-opdrachten zijn onderverdeeld in drie groepen: levenscycli. Ze worden levenscycli genoemd omdat ze de volgorde specificeren van de fasen die worden uitgevoerd tijdens een build of een bepaalde levenscyclus, omdat niet alle Maven-activiteiten builds zijn.

Er zijn drie levenscycli:

  • schoon;
  • standaard;
  • plaats.

En elk van hen heeft zijn eigen fasevolgorde. Clean heeft de kortste:

  1. voorreiniging;
  2. schoon;
  3. post schoon.

Verborgen extra pre-clean en post-clean fasen zijn toegevoegd zodat het opruimscenario flexibeler kan worden gemaakt.

Dan komt de levenscyclus van de site , die, zoals u al weet, is ontworpen om automatisch projectdocumentatie te genereren. Het bestaat uit vier fasen:

  1. pre-site
  2. plaats;
  3. post-site;
  4. site-implementatie.

Standaardlevenscycli kunnen worden uitgebreid met functionaliteit met behulp van Maven-plug-ins . We zullen hier later over praten, omdat dit een zeer interessant onderwerp is dat een aparte lezing verdient.

En het standaardscript heeft de langste lijst met fasen:

  1. valideren;
  2. genereren-bronnen;
  3. procesbronnen;
  4. bronnen genereren;
  5. procesbronnen;
  6. compileren;
  7. proces-test-bronnen;
  8. proces-test-bronnen;
  9. test compileren;
  10. test;
  11. pakket;
  12. installeren;
  13. aanwenden.

Er zijn allemaal dezelfde fasen die je al kent, maar er zijn nog een paar optionele toegevoegd.

Ten eerste is het genereren van bronnen een populaire fase in grote projecten : het genereren van Java-code op basis van bijvoorbeeld XML. En een paar procesbronnen , die iets met deze code doen.

Ten tweede is het genereren van bronnen de methode genereren-bronnen en de gepaarde procesbronnen . Bij grote projecten zie je vaak enkele activiteiten die aan deze fases gekoppeld zijn.

En tot slot, testen. Het heeft drie extra optionele fasen die helpen om de testfase zo flexibel mogelijk uit te voeren: proces-test-bronnen, proces-test-bronnen, test-compileren.