mvn czysta instalacja a wdrażanie a wydanie

135

Po prostu uczę się maven i ostatnio potrzebowaliśmy więcej i więcej. Chciałbym poznać różnicę między

mvn clean install

mvn release

mvn deploy

Podaj jak najwięcej opisów.

myusuf3
źródło

Odpowiedzi:

227

Te clean, installi deploy fazy są ważne Fazy cyklu życia i wywoływanie ich wyzwoli wszystkie etapy poprzedzające je, a cele związane z tymi fazami.

mvn clean install

To polecenie wywołuje cleanfazę, a następnie installfazę sekwencyjnie:

  • clean: usuwa pliki wygenerowane podczas kompilacji w katalogu projektu ( targetdomyślnie)
  • install: instaluje pakiet w lokalnym repozytorium, do użytku lokalnie jako zależność w innych projektach .

mvn deploy

To polecenie wywołuje deployfazę:

  • deploy: kopiuje ostateczny pakiet do zdalnego repozytorium w celu udostępnienia innym programistom i projektom .

wydanie mvn

To nie jest ważna faza ani cel, więc to nic nie da. Ale jeśli odnosi się do wtyczki Maven Release, która służy do automatyzacji zarządzania wydaniami. Wydanie projektu odbywa się w dwóch etapach: preparei perform. Jak udokumentowano:

Przygotowanie wydania przechodzi przez następujące fazy wydania:

  • Sprawdź, czy w źródłach nie ma niezatwierdzonych zmian
  • Sprawdź, czy nie ma żadnych zależności SNAPSHOT
  • Zmień wersję w POM z x-SNAPSHOT na nową wersję (zostaniesz zapytany o wersje do użycia)
  • Przekształć informacje SCM w POM, aby uwzględnić ostateczne miejsce docelowe tagu
  • Przeprowadź testy projektu względem zmodyfikowanych POM, aby upewnić się, że wszystko jest w porządku
  • Zatwierdź zmodyfikowane POM
  • Oznacz kod w SCM nazwą wersji (pojawi się monit)
  • Podbij wersję w POM do nowej wartości y-SNAPSHOT (te wartości będą również monitowane)
  • Zatwierdź zmodyfikowane POM

I wtedy:

Wykonanie wydania uruchamia następujące fazy wydania:

  • Do kasy z adresu URL SCM z opcjonalnym tagiem
  • Uruchom wstępnie zdefiniowane cele Maven, aby zwolnić projekt (domyślnie wdrażaj w witrynie)

Zobacz też

Pascal Thivent
źródło
1
Czy możesz to wyjaśnić: to nie jest ważna faza ani cel, więc to nic nie da. Ale jeśli odnosi się do wtyczki Maven Release. Jeśli nie jest to ani etap, ani cel, to jak to nazwiemy?
gvlasov
28
  • mvn installumieści twój spakowany projekt maven w lokalnym repozytorium, dla aplikacji lokalnej używającej twojego projektu jako zależności.
  • mvn release po prostu umieści twój obecny kod w tagu na twoim SCM, zmieni twoją wersję w twoich projektach.
  • mvn deployumieści Twój spakowany projekt maven w zdalnym repozytorium w celu udostępnienia go innym programistom.

Zasoby :

Colin Hebert
źródło