Jeden pakiet (buduje go w miejscu docelowym) i podczas instalacji (pakiety i umieszcza go w twoim repozytorium) Musisz zrobić to później, jeśli chcesz użyć tej wersji w innym module.
Peter Lawrey
3
Może to powinno zostać ponownie otwarte? Odpowiedź jest całkowicie możliwa i nie miałem trudności z odpowiedzią. Ponadto, jeśli ktoś jest zupełnie nowy w maven, łatwo zobaczyć, jak te dwie fazy wydają się robić to samo. Zedytuję go, aby uczynić go mniej niejasnym.
Daniel Kaplan
Odpowiedzi:
371
Cóż, oba posprzątają. Oznacza to, że usuną folder docelowy. Prawdziwe pytanie brzmi: jaka jest różnica między pakietem a instalacją?
packageskompiluje kod, a także go zapakuje. Na przykład, jeśli twój pom mówi, że projekt jest słoikiem, utworzy słoik dla ciebie, gdy go spakujesz i umieścisz gdzieś w katalogu docelowym (domyślnie).
installskompiluje i zapakuje, ale umieści także pakiet w lokalnym repozytorium. Dzięki temu inne projekty będą mogły do niego odwoływać się i pobierać je z lokalnego repozytorium.
Dlaczego więc mvn instaluje się szybciej niż pakiet mvn?
lostintranslation
9
@SharadHolani, ponieważ kompilacje są przyrostowe. mvn clean installnie jest szybszy niż mvn package.
OrangeDog,
W moim projekcie montaż pakietu mvn: pojedynczy, który buduje gruby słoik, trwa dłużej niż instalacja mvn. Czy spakuj i zainstaluj oba równoważne słoiki tłuszczu?
lostintranslation
1
@RakeshYadav tak to robi
Daniel Kaplan
116
Co robi clean (wspólne dla obu poleceń) - usuwa wszystkie pliki wygenerowane przez poprzednią kompilację
Jeśli chodzi o różnicę między pakietem poleceń a instalacją , najpierw musisz zrozumieć cykl życia projektu maven
Są to domyślne fazy cyklu życia w maven
sprawdź poprawność - sprawdź poprawność projektu i dostępne są wszystkie niezbędne informacje
kompiluj - skompiluj kod źródłowy projektu
test - przetestuj skompilowany kod źródłowy za pomocą odpowiedniego szkieletu testów jednostkowych. Te testy nie powinny wymagać pakowania ani wdrażania kodu
pakiet - weź skompilowany kod i spakuj go w formacie do rozpowszechnienia, takim jak JAR.
weryfikacja - uruchom wszelkie kontrole wyników testów integracyjnych, aby upewnić się, że spełnione są kryteria jakości
install - zainstaluj pakiet w lokalnym repozytorium, aby używać go jako zależności w innych projektach lokalnie
wdrożenie - wykonane w środowisku kompilacji, kopiuje końcowy pakiet do zdalnego repozytorium w celu udostępnienia go innym programistom i projektom.
Działanie Maven polega na tym, że jeśli uruchomisz polecenie dla którejkolwiek z faz cyklu życia, wykonuje ono każdą domyślną fazę cyklu w kolejności przed wykonaniem samego polecenia.
Tak więc, efektywnie, co to oznacza, komendy instalacyjne wykonują wszystko, co robi komenda pakietu i jeszcze więcej (zainstaluj pakiet w lokalnym repozytorium, aby używać go jako zależności w innych projektach lokalnie)
To powinno być oznaczone jako zaakceptowana odpowiedź. To jasno określa i pomaga PO zrozumieć, jakie są różne fazy cyklu życia maven i dlaczego instalacja mvn obejmuje pakiet mvn, ale nie na odwrót.
Jasmeet Singh,
1
Maven w pigułce, świetnie!
CodeSlave,
19
pakiet wygeneruje Jar / war zgodnie z plikiem POM.
install zainstaluje wygenerowany plik jar w lokalnym repozytorium dla innych zależności, jeśli takie istnieją.
nastąpi pierwsze opakowanie, a następnie te pakiety (jar / war) zostaną zainstalowane.
Abdul Gafoor,
1
„Faza instalacji następuje po fazie pakietu”. Sposób, w jaki jest obecnie wyrażony, jest odwrotny. „Następujący po” oznacza „po”.
Charles Wood,
11
Pakiet i instalacja to różne etapy cyklu życia maven. faza pakietu wykona wszystkie fazy przed tym i zakończy się pakowaniem projektu jako słoika. Podobnie faza instalacji wykona wszystkie wcześniejsze fazy i ostatecznie zainstaluje projekt lokalnie dla innych zależnych projektów.
Co masz na myśli przez „i wreszcie zainstaluj lokalnie projekt dla innych zależnych projektów”
Arun Gowda
2
@ArunGowda oznacza, że w .m2, który jest tworzony w twoim systemie po instalacji maven, zostaną dodane do projektów, które pakujesz i będą dostępne dla innych projektów jako zależność.
JAVA,
obraz to 1000 słów, ktoś ma schemat?
Instalacja @MrCholo mvn umieści jar / war w repozytorium maven. Miejsce, w którym przechowywane są wszystkie twoje zależności od maven, zwykle ~ / .m2
brt
6
packagedoda spakowane jarlub wardo twojego targetfolderu, możemy to sprawdzić, kiedy opróżnimy folder docelowy (za pomocą mvn clean), a następnie uruchomimy mvn package.
installzrobi wszystko, co packagerobi, a także doda pakiety jarlub warlokalne repozytorium. Możemy to potwierdzić, sprawdzając w .m2folderze.
package
iinstall
.Odpowiedzi:
Cóż, oba posprzątają. Oznacza to, że usuną folder docelowy. Prawdziwe pytanie brzmi: jaka jest różnica między pakietem a instalacją?
package
skompiluje kod, a także go zapakuje. Na przykład, jeśli twój pom mówi, że projekt jest słoikiem, utworzy słoik dla ciebie, gdy go spakujesz i umieścisz gdzieś w katalogu docelowym (domyślnie).install
skompiluje i zapakuje, ale umieści także pakiet w lokalnym repozytorium. Dzięki temu inne projekty będą mogły do niego odwoływać się i pobierać je z lokalnego repozytorium.Dokumentacja
źródło
mvn clean install
nie jest szybszy niżmvn package
.Co robi clean (wspólne dla obu poleceń) - usuwa wszystkie pliki wygenerowane przez poprzednią kompilację
Jeśli chodzi o różnicę między pakietem poleceń a instalacją , najpierw musisz zrozumieć cykl życia projektu maven
Są to domyślne fazy cyklu życia w maven
Działanie Maven polega na tym, że jeśli uruchomisz polecenie dla którejkolwiek z faz cyklu życia, wykonuje ono każdą domyślną fazę cyklu w kolejności przed wykonaniem samego polecenia.
kolejność wykonania
Kiedy więc uruchomisz pakiet komend mvn , uruchomi on komendy dla wszystkich faz cyklu życia aż do pakietu
A jeśli chodzi o instalację mvn , uruchamia polecenia dla wszystkich faz cyklu życia do instalacji, która obejmuje również pakiet
Tak więc, efektywnie, co to oznacza, komendy instalacyjne wykonują wszystko, co robi komenda pakietu i jeszcze więcej (zainstaluj pakiet w lokalnym repozytorium, aby używać go jako zależności w innych projektach lokalnie)
Źródło: odniesienie do cyklu życia Maven
źródło
pakiet wygeneruje Jar / war zgodnie z plikiem POM. install zainstaluje wygenerowany plik jar w lokalnym repozytorium dla innych zależności, jeśli takie istnieją.
faza instalacji następuje po fazie pakietu
źródło
Pakiet i instalacja to różne etapy cyklu życia maven. faza pakietu wykona wszystkie fazy przed tym i zakończy się pakowaniem projektu jako słoika. Podobnie faza instalacji wykona wszystkie wcześniejsze fazy i ostatecznie zainstaluje projekt lokalnie dla innych zależnych projektów.
Aby zapoznać się z cyklem życia kompilacji maven, przejdź przez poniższy link https://ayolajayamaha.blogspot.in/2014/05/difference-between-mvn-clean-install.html
źródło
package
doda spakowanejar
lubwar
do twojegotarget
folderu, możemy to sprawdzić, kiedy opróżnimy folder docelowy (za pomocąmvn clean
), a następnie uruchomimymvn package
.install
zrobi wszystko, copackage
robi, a także doda pakietyjar
lubwar
lokalne repozytorium. Możemy to potwierdzić, sprawdzając w.m2
folderze.źródło