Maven: Befehl zum Aktualisieren des Repositorys nach dem Hinzufügen einer Abhängigkeit zu POM


256

Ich habe meinem POM eine neue Abhängigkeit hinzugefügt.

Gibt es einen einfachen Befehl, den ich ausführen kann, um diese Abhängigkeit in mein Repository herunterzuladen?


Für diejenigen, die dies in einem Spring Boot-Projekt tun möchten: Verwenden Sie diese Option mvnw, um die Wrapper-Ebene aufzurufen. Die Befehle auf dieser Seite funktionieren damit.
G_V

Antworten:


178

mvn install(oder mvn package) wird immer funktionieren.

Sie können mvn compilezum Herunterladen von Abhängigkeiten mvn testzur Kompilierungszeit oder zum Kompilieren von Zeit und zum Testen von Abhängigkeiten verwenden, aber ich bevorzuge etwas, das immer funktioniert.


2
Vielen Dank, ich habe auch festgestellt, dass das Hinzufügen zum POM in STS es automatisch für Sie herunterlädt.
JJ180

15
@ Andrew Spencers Antwort ist genauer - mvn dependency:xxxbeschäftigen Sie sich nur mit Abhängigkeiten und machen Sie keine zusätzlichen Dinge - und darum ging es bei der Frage.
Botchniaque

Manchmal aktualisiert 'mvn package' Abhängigkeiten möglicherweise nicht. Ist mir mehr als einmal passiert. In solchen Fällen muss man "MVN-Abhängigkeit: Lösung"
ausführen

1
@BinitaBharati, Sie können der Maven-Befehlszeile ein -U hinzufügen, um das Herunterladen von Abhängigkeiten zu erzwingen. Dies ist nützlich, wenn Maven aufgrund eines Cache-Timeouts keine aktualisierte Abhängigkeit herunterlädt.
BamaPookie

1
@ Kishan Stellen Sie eine neue Frage. Zeigen Sie das Layout Ihres Projekts an (insbesondere, wo importdies geschieht) und ob Sie einen Build mit mehreren Modulen verwenden.
Aaron Digulla

611

Wenn Sie nur Abhängigkeiten herunterladen möchten, ohne etwas anderes zu tun, dann ist es:

mvn dependency:resolve

Oder um eine einzelne Abhängigkeit herunterzuladen:

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

Wenn Sie von einem bestimmten Repository herunterladen müssen, können Sie dies mit angeben -DrepoUrl=...


2
Ich erhalte die folgende Fehlermeldung, wenn ich diesen Befehl ausführe: [FEHLER] Fehler beim Ausführen des Ziels org.apache.maven.plugins: maven-dependency-plugin: 2.1: get (default-cli) für das Projekt Standalone-Pom: Die Parameter 'repositoryUrl' für das Ziel org.apache.maven.plugins: maven-dependency-plugin: 2.1: get fehlen oder sind ungültig -> [Hilfe 1]. Die Angabe von -DrepositoryUrl = ... funktioniert nicht.
Chry Cheng

1
Ich glaube, ich habe die Lösung gefunden. Der Parameter sollte "repoUrl" und nicht "repositoryUrl" sein.
Chry Cheng

Behebt das Problem für mich nicht: Ich starte mvn package -odirekt danach - ich erhalte die Fehlermeldung, dass Plugins nicht heruntergeladen werden können. Laufen mvn dependency:resolve-pluginslöst das Problem auch nicht vollständig.
Innokenty

Ihre Repository-URLs fehlen möglicherweise / sind falsch. Auf jeden Fall denke ich nicht, dass diese Antwort die Antwort auf das Problem ist, das Sie haben. Diese Antwort deckt den Fall ab, in dem Maven alle benötigten Artefakte in den konfigurierten Repositorys finden kann.
Andrew Spencer

Es ist mir egal, ob du ein Gläubiger bist oder nicht, ein Christ oder nicht ... Gott segne dich diese großartige einfache Antwort.
Salathiel Genèse

12

Ich weiß, dass es jetzt eine alte Frage ist, aber für Benutzer, die MavenPlugins mit Eclipse unter verwenden Windows, haben Sie zwei Möglichkeiten:

  1. Wenn Sie Maven als eigenständige Anwendung installiert haben:

    Sie können den folgenden Befehl CMDunter Ihrem Projektpfad verwenden:

    mvn eclipse:eclipse

    Es aktualisiert Ihr Repository mit allen fehlenden Gläsern entsprechend Ihren Abhängigkeiten in Ihrer pom.xmlDatei.

  2. Wenn Sie Maven nicht als eigenständige Anwendung installiert haben, können Sie die folgenden Schritte auf Ihrer Eclipse ausführen:

    Klicken Sie mit der rechten Maustaste auf project-> Run As-> Run configurations.

    Dann wählen Sie mavenBuild.

    Klicken Sie dann auf die newSchaltfläche, um eine Konfiguration des ausgewählten Typs zu erstellen. Klicken Sie auf Arbeitsbereich durchsuchen, wählen Sie Ihr Projekt aus und geben Sie in den Zielen aneclipse:eclipse

Weitere Informationen finden Sie unter Ausführen des Befehls mvn eclipse: eclipse .


3
Ausführen von Eclipse: Eclipse nach Abhängigkeit: Auflösung hat mir geholfen, heruntergeladene Gläser in Eclipse zu sehen, danke!
Anatoly Yakimchuk

2
Obwohl diese Antwort den armen Leuten hilft, die an Eclipse festhalten, empfehle ich jedem, der Eclipse verwendet, dringend, eine bessere Alternative zu finden. Vor allem, wenn Sie Maven verwenden. Netbeans und IntelliJ sind Lichtjahre voraus.
64BitBob

@ 64BitBob Angenommen, Netbeans und IntelliJ sind besser als Eclipse, sollten wir immer eine Lösung für diejenigen geben, die es verwenden. :)
cнŝdk

Ich sehe, dass das Plugin nicht mehr auf dem Markt verfügbar ist, aber ja, es funktioniert in Eclipse 2020, ohne etwas herunterzuladen. Ich frage mich, ob mvn eclipse: eclipse der Befehl ist, der von eclipse selbst gesendet wird, wenn wir mit der rechten Maustaste auf-> Maven-> Projekt aktualisieren ...
Paolo

@Paolo Meiner Meinung nach haben sie das Plugin in neuen Versionen von Eclipse automatisch hinzugefügt, und ja, ich denke, es ist der gleiche Befehl hinter der Option "Projekt aktualisieren".
cнŝdk

1

Achten Sie auf Ihren Abhängigkeitsbereich. Ich hatte das Problem, dass beim Aufrufen von Clean Compile über Intellij der POM heruntergeladen wurde, das JAR jedoch nicht. Es wurde eine xxx.jar.lastUpdated-Datei erstellt. Dann wurde mir klar, dass der Abhängigkeitsbereich ein Test war, aber ich habe die Kompilierung ausgelöst. Ich habe die Repos gelöscht und den MVN-Test ausgelöst, und das Problem wurde behoben.


-4

Klicken Sie mit der rechten Maustaste auf das Projekt. Gehen Sie zu Maven -> Projekt aktualisieren.

Die Abhängigkeiten werden automatisch installiert.


So geht's in Eclipse.
user1364368

Manchmal, und es ist schließlich nicht weg, funktioniert dies, einige Befehle wie MVN-Paket, Installation, Abhängigkeit: Lösung kann Ihr Problem lösen
Sham Fiorin
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.