Jestem nowy w Maven, mam projekt sieci web oparty na Javie z maven skonfigurowanym w MyEclipse.
Czy teraz, jeśli zmodyfikowałem jakiekolwiek pliki java, muszę to zrobić, Run as -> Mvn install
czy Mvn package
?
134
z http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
package
: weź skompilowany kod i zapakuj go w formacie przeznaczonym do dystrybucji, takim jak JAR.
install
: zainstaluj pakiet w lokalnym repozytorium, aby użyć go jako zależności w innych projektach lokalnie
Tak więc odpowiedź na twoje pytanie jest taka, że zależy to od tego, czy chcesz go zainstalować w lokalnym repozytorium. Instalator również uruchomi pakiet, ponieważ znajduje się on wyżej w stosie fazy celu.
deploy
działa. Jeśli zamienisz go napackage
, nie zostanie wdrożony na Nexusie.mvn install
jest najczęściej używaną opcją.mvn package
jest rzadko używany, tylko jeśli debugujesz jakiś problem z procesem budowania Mavena.Zobacz: http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
Zauważ, że
mvn package
utworzy tylko plik jar.mvn install
zrobi to i zainstaluje pliki jar (i class itp.) w odpowiednich miejscach, jeśli inny kod zależy od tych jar.Zwykle robię
mvn clean install
; spowoduje to usunięcietarget
katalogu i odtworzenie wszystkich plików JAR w tej lokalizacji.Czyszczenie pomaga w usuwaniu niepotrzebnych lub usuniętych rzeczy, które czasami mogą przeszkadzać.
Zamiast debugowania (czasami) po prostu zaczynaj cały czas od nowa.
źródło
Z odniesieniem Lifecycle , instalacja będzie działać testów integracyjnych projektu, pakiet nie będzie.
Jeśli naprawdę nie musisz instalować wygenerowanych artefaktów, użyj przynajmniej weryfikacji .
źródło
mvn verify
”. Jest to więc dość ostateczna odpowiedź na pierwotne pytanie.Powinieneś również zauważyć, że jeśli twój projekt składa się z kilku modułów, które są od siebie zależne, powinieneś użyć "zainstaluj" zamiast "pakiet", w przeciwnym razie twoja kompilacja się nie powiedzie, ponieważ gdy użyjesz polecenia instalacji, moduł A zostanie spakowany i wdrożony do lokalnego repozytorium, a następnie, jeśli moduł B potrzebuje modułu A jako zależności, może uzyskać do niego dostęp z lokalnego repozytorium.
źródło
Jeśli nie używasz zdalnego repozytorium (takiego jak Artifactory), użyj zwykłego starego:
mvn clean install
Dość stary temat, ale AFAIK, jeśli prowadzisz własne repozytorium (np. Z artifactory), aby udostępniać jar między swoim zespołem (zespołami), możesz użyć
mvn clean deploy
zamiast.
W ten sposób serwer ciągłej integracji może mieć pewność, że wszystkie zależności są poprawnie umieszczone w repozytorium zdalnym. Jeśli go przegapiłeś, mvn nie będzie w stanie znaleźć go w twoim lokalnym repozytorium m2 CI.
źródło
pakiet - pobiera skompilowany kod i pakuje go w jego dystrybuowalnym formacie, takim jak plik JAR lub WAR. install - zainstaluj pakiet w lokalnym repozytorium, aby użyć go jako zależności w innych projektach lokalnie
źródło
Właściwy sposób to
mvn package
jeśli zrobiłeś wszystko poprawnie do głównej części swojej produkcji wtedy nie powinno być potrzeby instalowania paczek w lokalnym repozytorium.Ponadto, jeśli używasz Travisa, możesz "buforować" swoje zależności, ponieważ nie będą one dotykać twoich,
$HOME.m2/repository
jeśli używasz pakietu do własnego projektu.W praktyce, jeśli nawet spróbujesz to zrobić
mvn site
, zwykle musisz to zrobićmvn install
wcześniej. Jest po prostu zbyt wiele błędów w jednym z nichsite
lub wiele źle utrzymywanych wtyczek.źródło
To zależy od tego, co próbujesz osiągnąć po zmianie pliku Java. Dopóki nie zechcesz przetestować procesu maven, nigdy nie musisz nic robić. Eclipse / MyEclipse zbuduje to, co jest konieczne, i umieści dane wyjściowe w odpowiednim miejscu w projekcie. Możesz go również uruchomić lub wdrożyć (na przykład jeśli jest to projekt sieci Web), bez konieczności jawnego wykonywania czegokolwiek z maven. W końcu, aby zainstalować projekt w repozytorium mavena, będziesz musiał wykonać instalację mavena. Możesz także mieć inne cele maven, które chcesz zrealizować, których MyEclipse nie zrobi automatycznie.
Jak mówię, to zależy od tego, co chcesz zrobić.
źródło