2012-05-10 30 views
102

Właśnie zacząłem używać Maven i powiedziano mi, aby zrobić mvn install w określonym katalogu.Co mvn zainstalować w maven dokładnie zrobić

Co dokładnie robi mvn install?

Myślę, że szuka pom.xml w bieżącym folderze i rozpoczyna się zgodnie z instrukcjami określonymi w tym pliku. Czy to jest poprawne?

+1

http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html –

Odpowiedz

68

Jak można mieć świadomość, Maven jest automatyzacja kompilacji narzędzie dostarczane przez Apache, które bardziej zarządza zależnościami. możemy zrobić to jako plik Ant i Makefile, który usuwa wszystkie wymagane zależności.

Na mvn install, to ramki z drzewa zależności w oparciu o konfiguracji projektu pom.xml na wszystkich projektów cząstkowych wynikających super pom.xml (POM root) i pliki do pobrania/kompiluje wszystkie potrzebne składniki w katalogu o nazwie .m2 w folderze użytkownika . Te zależności będą musiały zostać rozwiązane, aby projekt mógł zostać zbudowany bez żadnych błędów, a jeden z nich może zmniejszyć większość zależności.

Co więcej, istnieją inne narzędzia z maven jak dependency:resolve do stosowania osobno w konkretnych przypadkach. Cykl budować życie mvn jest jak poniżej:

  1. process-resources
  2. compile
  3. process-test-resources
  4. test-compile
  5. test
  6. package
  7. install
  8. deploy

Fazę testową tego mvn można zignorować za pomocą flagi -DskipTests=true.

+2

Uwaga: jeśli chcesz pominąć wszystkie cele związane z testami, użyj: -Dmaven.test.skip = true (zamiast -DskipTests = true) –

26

Czy obejrzałeś któryś z dokumentów Mavena, na przykład maven install plugin docs?

Wersja ze skorupą: zbuduje projekt i zainstaluje go w lokalnym repozytorium.

+0

Załóżmy, że uruchamiasz "mvn install" w bibliotece o otwartym kodzie źródłowym. Następnie uruchamiasz "mvn install" na projekcie, który korzysta z biblioteki open source, którą najpierw skompilowaliśmy. Po uruchomieniu "instalacji mvn", czy JAR najpierw zostaną sprawdzone w lokalnym repo? Czy jest to zależne od pliku POM? –

+1

@Kevin Najpierw powinien być lokalny, ponieważ jest to bardzo ważne. Jeśli nie ma go w lokalnym repozytorium, wyszuka wszystkie skonfigurowane repozytoria (lub ustawienia domyślne) i zainstaluje je w lokalnym repozytorium, jeśli zostanie znalezione. Podejrzewam, że możesz go skonfigurować, aby zawsze pomijał lokalne repozytorium, chociaż nie wiem, jak to zrobić bez sprawdzania. –

+12

Czy * ty * spojrzałeś na dokumenty kanoniczne dla Mavena? Strona Apache wyjaśnia cel instalacji mvn: "W większości przypadków instalacja: instalacja celu nie wymaga żadnej konfiguracji, potrzebuje POM i plik artefaktu do zainstalowania podczas fazy instalacji domyślnego cyklu życia kompilacji." Dzieje się tak dlatego, że dokument Apache'a nie wyjaśnia, co "mvn install" faktycznie robi, że ludzie lubią plakat, i ja, szukamy odpowiedzi. Idealnie rozsądne pytanie. – bethesdaboys

1

-DskipTests=true jest krótka forma -Dmaven.test.skip=true

dokonać zmian w setting.xml w folderze .m2. Możesz użyć linku do lokalnego repozytu, aby słoiki po downlaodedu nie były pobierane ponownie.

<url>file://C:/Users/admin/.m2/repository</url> 
</repository> 
1

Celem install:install jest przez «Apache Maven zainstalować wtyczkę»:

Apache Maven zainstalować wtyczkę

Install Plugin służy w fazie instalacji, aby dodać artefakt (ów) lokalne repozytorium. Plugin instalacyjny wykorzystuje informacje w POM (groupId, artifactId, version) w celu określenia właściwej lokalizacji artefaktu w lokalnym repozytorium.

Lokalne repozytorium to lokalna pamięć podręczna, w której przechowywane są wszystkie artefakty potrzebne do kompilacji. Domyślnie znajduje się on w katalogu domowym użytkownika (~/.m2/repository), ale jego lokalizację można skonfigurować za pomocą elementu ~/.m2/settings.xml za pomocą elementu <localRepository>.

- Apache Maven Install Plugin - Introduction.

Mimo, że dokładny cel cel:

install:install służy do automatycznego instalowania główny artefakt projektu (JAR, WAR lub EAR), jego POM oraz wszelkie załączone artefakty (źródła, javadoc itp.) wyprodukowanych przez konkretny projekt.

- Apache Maven Install Plugin - Introduction.

Dodatkowe informacje na temat celu można znaleźć na stronie Apache Maven Install Plugin - install:install.

Aby uzyskać dodatkowe informacje na temat cyklu życia kompilacji oraz tego, w którym miejscu cel ma się w cyklu życia kompilacji, zapoznaj się ze stroną Maven – Introduction to the Build Lifecycle.

Powiązane problemy