5.1 Lista faz projektu

W końcu dotarliśmy do montażu projektu. A potem będziesz trochę zaskoczony. Cóż, albo mocno, jak się okazuje. Maven zrewidował swoje podejście do budowania projektu. A teraz przekonasz się o tym.

Cały montaż projektu został podzielony na etapy, których opis podam w poniższej tabeli:

Zamówienie Faza
1 uprawomocnić sprawdza poprawność metainformacji o projekcie
2 skompilować kompiluje źródła
3 test uruchamia testy klasowe z poprzedniego kroku
4 pakiet pakuje skompilowane klasy do nowego artefaktu: jar, war, zip, ...
5 zweryfikować sprawdza poprawność artefaktu i spełnienie wymagań jakościowych
6 zainstalować umieszcza artefakt w lokalnym repozytorium
7 wdrożyć przesyła artefakt do serwera produkcyjnego lub zdalnego repozytorium

Jednocześnie kroki są wyraźnie sekwencyjne . Jeśli powiesz Mavenowi, aby uruchomił polecenie package, najpierw uruchomi fazy sprawdzania poprawności, kompilacji, testowania, a dopiero potem pakiet

W zasadzie nie ma tu nic nowego, poza tym, że istnieją odrębne fazy kontroli jakości: walidacja, test, weryfikacja. I aż dwie fazy wdrażania zestawu - instalacja i wdrożenie.

Aby rozpocząć określoną fazę, wystarczy napisać komendę faza maven . Na przykład, aby zbudować, musisz uruchomić polecenie pakietu maven . Itp.

Intellij IDEA świetnie radzi sobie z tymi fazami i ma specjalne menu po prawej stronie do tych celów:

fajna faza

Tutaj, oprócz dobrze znanych faz, IDEA wyświetla jeszcze 2 polecenia: clean i site . clean służy do całkowitego wyczyszczenia folderu docelowego, a strona może utworzyć dokumentację projektu.

5.2 Budowanie projektu

Jeśli chcesz skompilować projekt, musisz uruchomić fazę kompilacji. Można to zrobić za pomocą wiersza poleceń: mvn kompilacja lub poprzez interfejs IDEA, klikając element kompilacji .

Następnie Maven rozpocznie budowanie projektu i zobaczysz dziennik procesu budowania podobny do tego:

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

Jeśli coś poszło nie tak, dziennik będzie wyglądał następująco:

[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 

W logu będzie dużo przydatnych informacji, z czasem nauczysz się je rozumieć i doceniać.

5.3 Cykle pracy

Wszystkie polecenia Maven są podzielone na trzy grupy - cykle życia. Nazywa się je cyklami życia , ponieważ określają kolejność faz, które działają podczas kompilacji lub określonego cyklu życia, ponieważ nie wszystkie działania Mavena są kompilacjami.

Istnieją trzy cykle życia:

  • czysty;
  • domyślny;
  • strona.

I każdy z nich ma swoją własną kolejność faz. Clean ma najkrótszy:

  1. wstępne oczyszczenie;
  2. czysty;
  3. poczta czysta.

Dodano ukryte dodatkowe fazy przed czyszczeniem i po czyszczeniu, dzięki czemu scenariusz czyszczenia może być bardziej elastyczny.

Potem przychodzi cykl życia serwisu , który jak już wiesz ma na celu automatyczne generowanie dokumentacji projektowej. Składa się z czterech faz:

  1. przed witryną
  2. strona;
  3. strona pocztowa;
  4. wdrożenie witryny.

Standardowe cykle życia można rozszerzyć o funkcjonalność za pomocą wtyczek Maven . Porozmawiamy o tym później, ponieważ jest to bardzo ciekawy temat, który zasługuje na osobny wykład.

A domyślny skrypt ma najdłuższą listę faz:

  1. uprawomocnić;
  2. generują-źródła;
  3. źródła procesów;
  4. generować zasoby;
  5. zasoby procesowe;
  6. skompilować;
  7. źródła testów procesów;
  8. zasoby do testów procesów;
  9. kompilacja testowa;
  10. test;
  11. pakiet;
  12. zainstalować;
  13. wdrożyć.

Istnieją te same fazy, o których już wiesz, ale dodano kilka opcjonalnych.

Po pierwsze, popularnym etapem w dużych projektach jest generowanie źródeł : generowanie kodu Java na przykład na podstawie XML. I parę process-sources , która robi coś z tym kodem.

Po drugie, generowanie zasobów to generowanie zasobów i metoda sparowanych zasobów procesowych . W dużych projektach często zobaczysz działania związane z tymi fazami.

I na koniec testowanie. Ma trzy dodatkowe opcjonalne fazy, które pomagają maksymalnie uelastycznić przebieg fazy testowej: source-test-sources, process-test-resources, test-compile.