Wymień wszystkie możliwe cele w Maven 2?


105

Jestem nowy w Maven, pochodzę ze świata Ant.

Czy można wymienić wszystkie możliwe cele (w tym, powiedzmy, wszystkie wtyczki), które możesz uruchomić?

Widzę, że -gw Maven 1 była flaga, ale nie jest dostępna w wersji 2.


4
Doprowadza mnie do szału, że maven nie może odpowiedzieć na to pytanie bez stron XML! Dobry towar!
Kieveli

Odpowiedzi:


120

Cel wskazany w linii poleceń jest powiązany z cyklem życia Mavena. Na przykład buildcykl życia (masz również różne cykle cleani site) składa się z następujących faz:

  • validate: sprawdź, czy projekt jest poprawny i czy wszystkie niezbędne informacje są dostępne.
  • compile: skompiluj kod źródłowy projektu.
  • test: przetestuj skompilowany kod źródłowy przy użyciu odpowiedniego środowiska do testów jednostkowych. Testy te nie powinny wymagać pakowania ani wdrażania kodu.
  • package: weź skompilowany kod i spakuj go w formacie przeznaczonym do dystrybucji, takim jak JAR.
  • integration-test: Przetwórz i wdróż pakiet, jeśli to konieczne, w środowisku, w którym można uruchomić testy integracji.
  • verify: uruchom wszelkie kontrole, aby upewnić się, że pakiet jest ważny i spełnia kryteria jakości
  • install: zainstaluj pakiet w lokalnym repozytorium, aby użyć go jako zależności w innych projektach lokalnie.
  • deploy: wykonane w środowisku integracji lub wydania, kopiuje ostateczny pakiet do zdalnego repozytorium w celu udostępnienia innym programistom i projektom.

Listę "podstawowych" wtyczek można znaleźć tutaj , ale jest też wiele innych wtyczek, takich jak te z kodem, tutaj .


1
zapoznaj się z odniesieniem do cyklu życia. Wszystkie części z cyklu życia są tam wymienione.
Salandur

51

Czy można wymienić wszystkie możliwe cele (w tym, powiedzmy, wszystkie wtyczki), które można uruchomić?

Maven nie ma nic do tego wbudowanego, chociaż lista faz jest skończona (lista celów wtyczek nie jest, ponieważ lista wtyczek nie jest).

Ale możesz ułatwić sobie sprawę i wykorzystać moc uzupełniania bash (używając cygwin, jeśli jesteś w systemie Windows), jak opisano w Przewodniku po automatycznym uzupełnianiu Maven 2.x przy użyciu BASH (ale zanim wybierzesz skrypt z tego przewodnika, przeczytaj dalej ).

Aby wszystko działało, najpierw postępuj zgodnie z tym przewodnikiem, aby skonfigurować zakończenie bash na komputerze. Następnie pora zdobyć skrypt dla Maven2 i:

  • Chociaż możesz użyć tego z mini przewodnika
  • Podczas korzystania z ulepszonej wersji dołączonej do MNG-3928
  • Chociaż możesz użyć losowych skryptów znalezionych w sieci (zobacz zasoby, jeśli jesteś ciekawy)
  • Osobiście używam skryptu Bash Completion z PPA Ludovica Claude'a (który jest dołączony do wersji pakietowej mavenw Ubuntu), który można pobrać z HEAD. Po prostu najlepszy .

Poniżej przedstawiam to, co otrzymuję tylko po to, aby zilustrować wynik:

$ mvn [tab] [tab]
 Wyświetlić wszystkie 377 możliwości? (t lub n)
mrówka: mrówka 
mrówka: czysty 
mrówka: pomoc 
antrun: help 
antrun: biegnij 
archetyp: pełzanie 
archetyp: stwórz 
archetyp: utwórz z projektu 
archetyp: generuj 
archetyp: pomoc 
montaż: montaż 
zespół: katalog 
zestaw: pojedynczy katalog 
montaż: pomoc 
montaż: pojedynczy  
... 

Oczywiście nigdy nie przeglądam 377 możliwości, używam dokończenia. Ale to daje wyobrażenie o wielkości listy „a” :)

Zasoby


2
Nie widziałem go jeszcze, ale czy nowe Maven Shellnarzędzie zapewnia automatyczne uzupełnianie, które może być przydatne w tym miejscu?
Romain Linsolas

2
@romain Nie, mvnshnie zapewnia uzupełnienia (przynajmniej nie w wersji, którą mam na swoim komputerze). Sprawdziłem przed odpowiedzią :)
Pascal Thivent

7

Jeśli używasz IntelliJ IDEA, możesz przeglądać wszystkie cele / zadania maven (w tym wtyczki) w Maven Projectszakładce:

Projekty Maven


2
Chciałbym to zrobić za pomocą jakiegoś polecenia. Jak to robi IntelliJ IDEA?
nacho4d

0

Upraszczajmy to:

Cykle życia Mavena: 1. Wyczyść 2. Domyślnie (kompilacja) 3. Witryna

Fazy ​​Maven domyślnego cyklu życia: 1. Sprawdź poprawność 2. Kompiluj 3. Testuj 4. Pakiet 5. Weryfikuj 6. Zainstaluj 7. Wdróż

Uwaga: nie mieszaj celów mavena z cyklem życia mavena ani nie daj się im mylić.

Zobacz Maven Build Lifecycle Podstawy 1


0

Cykl życia kompilacji składa się z faz

Każdy z tych cykli życia kompilacji jest definiowany przez inną listę faz kompilacji, przy czym faza kompilacji reprezentuje etap w cyklu życia.

Na przykład domyślny cykl życia składa się z następujących faz (pełną listę faz cyklu życia można znaleźć w Odniesieniu do cyklu życia):

  • waliduj - sprawdź, czy projekt jest poprawny i czy wszystkie niezbędne informacje są dostępne
  • kompiluj - skompiluj kod źródłowy projektu
  • test - przetestuj skompilowany kod źródłowy przy użyciu odpowiedniego środowiska do testów jednostkowych. Testy te nie powinny wymagać pakowania ani wdrażania kodu
  • pakiet - weź skompilowany kod i spakuj go w formacie przeznaczonym do dystrybucji, takim jak JAR. weryfikuj - przeprowadzaj wszelkie sprawdzenia wyników testów integracji, aby upewnić się, że kryteria jakości są spełnione
  • install - zainstaluj pakiet w lokalnym repozytorium, aby użyć go jako zależności w innych projektach lokalnie
  • wdrażanie - wykonywane w środowisku kompilacji, kopiuje ostateczny pakiet do zdalnego repozytorium w celu udostępnienia innym programistom i projektom.

Te fazy cyklu życia (plus inne fazy cyklu życia nie pokazane tutaj) są wykonywane sekwencyjnie, aby zakończyć domyślny cykl życia. Biorąc pod uwagę powyższe fazy cyklu życia, oznacza to, że gdy używany jest domyślny cykl życia, Maven najpierw zweryfikuje projekt, a następnie spróbuje skompilować źródła, uruchomić je z testami, spakować pliki binarne (np. Jar), ​​uruchomić testy integracji względem tego pakiet, zweryfikuj testy integracji, zainstaluj zweryfikowany pakiet w lokalnym repozytorium, a następnie wdróż zainstalowany pakiet w zdalnym repozytorium.

Źródło: https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.