Maven: polecenie aktualizacji repozytorium po dodaniu zależności do POM

256

Dodałem nową zależność do mojej POM.

Czy istnieje proste polecenie, które mogę uruchomić, aby pobrać tę zależność do mojego repozytorium?

JJ180
źródło
Dla tych, którzy zastanawiają się, jak to zrobić w projekcie Spring Boot: użyj, mvnwaby wywołać warstwę otoki. Polecenia na tej stronie działają z nim.
G_V

Odpowiedzi:

178

mvn install(lub mvn package) zawsze będzie działać.

Możesz użyć mvn compiledo pobrania zależności czasowych kompilacji lub mvn testdo zależności czasowych i testowych, ale wolę coś, co zawsze działa.

Aaron Digulla
źródło
2
Dzięki, odkryłem również, że dodanie go do pom w STS automatycznie go pobierze.
JJ180,
15
@Andrew Spencer odpowiada dokładniej - mvn dependency:xxxradzi sobie tylko z zależnościami i nie robi żadnych dodatkowych rzeczy - i o to chodziło w pytaniu.
botchniaque
Czasami „pakiet mvn” może nie aktualizować zależności. Zdarzyło mi się to nie raz. W takich przypadkach należy uruchomić polecenie „zależność mvn: rozwiązać”
Binita Bharati,
1
@BitaBharati, możesz dodać -U do wiersza poleceń Maven, aby wymusić pobieranie zależności. Jest to przydatne, jeśli Maven nie pobiera zaktualizowanej zależności z powodu przekroczenia limitu czasu pamięci podręcznej.
BamaPookie
1
@Kishan Zadaj nowe pytanie. Pokaż układ swojego projektu (szczególnie tam, gdzie to się importdzieje) i czy korzystasz z kompilacji wielomodułowej.
Aaron Digulla,
611

Jeśli chcesz tylko pobierać zależności bez robienia czegokolwiek innego, to jest to:

mvn dependency:resolve

Lub pobrać pojedynczą zależność:

mvn dependency:get -Dartifact=groupId:artifactId:version

Jeśli chcesz pobrać z określonego repozytorium, możesz to określić za pomocą -DrepoUrl=...

Andrew Spencer
źródło
2
Otrzymuję ten błąd, gdy uruchamiam to polecenie: [BŁĄD] Nie udało się wykonać celu org.apache.maven.plugins: wtyczka maven-dependency: 2.1: get (default-cli) w projekcie standalone-pom: Parametry „repositoryUrl” dla bramki org.apache.maven.plugins: wtyczka maven-dependency: 2.1: get brakuje lub jest niepoprawna -> [Pomoc 1]. Podanie opcji -DrepositoryUrl = ... nie działa.
Chry Cheng
1
Myślę, że znalazłem rozwiązanie. Parametr powinien mieć wartość „repoUrl”, a nie „repositoryUrl”.
Chry Cheng
Nie rozwiązuje to dla mnie problemu: uruchamiam mvn package -ozaraz po tym - pojawia się błąd, że wtyczek nie można pobrać. Uruchomienie mvn dependency:resolve-pluginsrównież nie rozwiązuje w pełni problemu.
Innokenty
W adresach URL repozytorium może brakować / jest on nieprawidłowy. W każdym razie nie sądzę, aby ta odpowiedź była odpowiedzią na występujący problem. Ta odpowiedź dotyczy przypadku, w którym Maven może znaleźć wszystkie potrzebne artefakty w skonfigurowanych repozytoriach.
Andrew Spencer
Nie obchodzi mnie, czy jesteś wierzącym czy nie, chrześcijaninem czy nie ... Niech Bóg błogosławi ci tę niesamowitą, prostą odpowiedź.
Salathiel Genèse
12

Wiem, że jest to stare pytanie, ale dla użytkowników korzystających Mavenz wtyczki typu Eclipse under Windowsmasz dwie opcje:

  1. Jeśli Maven został zainstalowany jako samodzielna aplikacja:

    Możesz użyć następującego polecenia w CMDścieżce projektu:

    mvn eclipse:eclipse

    Zaktualizuje twoje repozytorium o wszystkie brakujące słoiki, zgodnie z twoimi zależnościami w pom.xmlpliku.

  2. Jeśli Maven nie jest zainstalowany jako samodzielna aplikacja, możesz wykonać następujące kroki na swoim zaćmieniu:

    Kliknij prawym przyciskiem myszy project-> Run As-> Run configurations.

    Następnie wybierz mavenBuild.

    Następnie kliknij newprzycisk, aby utworzyć konfigurację wybranego typu. Kliknij obszar roboczy Przeglądaj, a następnie wybierz projekt i określ celeeclipse:eclipse

Więcej informacji można znaleźć w celu uruchomienia polecenia mvn eclipse: eclipse .

cнŝdk
źródło
3
Uruchamianie zaćmienia: zaćmienie po zależności: rozwiązanie pomogło mi zobaczyć pobrane słoiki w zaćmieniu, dzięki!
Anatolij Jakimczuk
2
Chociaż ta odpowiedź pomoże biednym ludziom, którzy utknęli w Eclipse, zdecydowanie polecam każdemu, kto używa Eclipse, znaleźć lepszą alternatywę. Zwłaszcza jeśli zamierzasz używać Maven. Netbeans i IntelliJ mają przed sobą lata świetlne.
64BitBob
@ 64BitBob Zakładając, że Netbeans i IntelliJ są lepsze niż zaćmienie, zawsze powinniśmy dać rozwiązanie tym, którzy z nich korzystają. :)
cнŝdk
Widzę, że wtyczka nie jest już dostępna na rynku, ale tak, działa w Eclipse 2020 bez pobierania czegokolwiek. Zastanawiam się, czy mvn eclipse: eclipse jest poleceniem wysłanym przez samo zaćmienie, gdy klikamy prawym przyciskiem myszy-> Maven-> Aktualizuj projekt ...
Paolo
@Paolo Moim zdaniem automatycznie dodali wtyczkę do nowych wersji Eclipse i tak, myślę, że to samo polecenie opcji „Aktualizuj projekt”.
cnŝdk
1

Zwróć uwagę na zakres zależności. Miałem problem polegający na tym, że gdy wywołuję czystą kompilację przez Intellij, pom zostanie pobrane, ale jar nie. Utworzono plik xxx.jar.lastUpdated. Potem zdałem sobie sprawę, że zasięg zależności był testem, ale uruchomiłem kompilację. Usunąłem repozytorium i uruchomiłem test mvn, a problem został rozwiązany.

NullPointer
źródło
-4

Kliknij prawym przyciskiem myszy projekt. Idź do Maven -> Zaktualizuj projekt.

Zależności zostaną automatycznie zainstalowane.

Ashish Pandey
źródło
Oto jak to zrobić w Eclipse.
user1364368,
czasami, i to ewentualny, nie dala to działa, niektóre polecenia takie jak pakiet mvn, zainstalować zależność: postanowienie może rozwiązać Twój problem
Sham Fiorin