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?

JJ180
quelle
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.

Aaron Digulla
quelle
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=...

Andrew Spencer
quelle
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 .

cнŝdk
quelle
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.

Null Zeiger
quelle
-4

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

Die Abhängigkeiten werden automatisch installiert.

Ashish Pandey
quelle
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