web-dev-qa-db-de.com

Erzwingen Sie einen erneuten Download der Release-Abhängigkeit mit Maven

Ich arbeite an einem Projekt mit Abhängigkeit X. X hängt wiederum von Y ab.

Früher habe ich Y explizit in das Pom meines Projekts aufgenommen. Es wurde jedoch nicht verwendet, und um die Dinge sauberer zu machen, fügte ich es stattdessen zu X's Pom als Abhängigkeit hinzu. X ist als Releaseabhängigkeit markiert.

Das Problem ist, dass nach dem Entfernen von Y aus dem Pom meines Projekts und dem Hinzufügen zu Xs Pom, mein Projekt es nicht mit mvn -U clean package abhebt. Ich weiß, dass Sie Snapshots aktualisieren, aber keine Releases.

Also, ohne das ~/.m2/Repository-Verzeichnis zu löschen Wie erzwinge ich einen erneuten Download von Xs pom? Ich habe auch versucht, dependency:purge-local-repository auszuführen und es funktionierte auch nicht.

99
volni

Sie können keine Abhängigkeiten von Maven erneut herunterladen, aber Sie können stattdessen Abhängigkeiten entfernen, die mit mvn dependency:purge-local-repository falsch heruntergeladen wurden.

Siehe: http://maven.Apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html

133
Ali Tokmen

Ich habe gerade mein ~/.m2/Repository gelöscht und das hat einen erneuten Download erzwungen;)

49
Ryan Angilly

Ich denke, der folgende Befehl kann Ihnen helfen!


mvn -U clean install
30
Richard

Danke an Ali Tokmens Antwort. Es ist mir gelungen, die spezifische lokale Abhängigkeit mit dem folgenden Befehl zu löschen:

mvn dependency:purge-local-repository -DmanualInclude=com.skyfish:utils

Damit entfernt es utils aus meinem .m2/-repository und lädt die utils-JAR-Abhängigkeit immer wieder herunter, wenn ich mvn clean install ausführen.

16
skyfish

Klicken Sie mit der rechten Maustaste auf Projekt -> Maven -> Projekt aktualisieren Und markieren Sie die Kontrollkästchen wie im Screenshot. Es wird auch die Releases aktualisieren :)

enter image description here

13
nanosoft

Sie haben die Fragen als "maven-2" markiert. Die Option -U wurde in Maven 3 hinzugefügt, um dieses Problem zu lösen.

Ich würde ein Upgrade vorschlagen.

7
Mark O'Connor

Wenn Sie es zu X hinzugefügt haben, sollten Sie die Versionsnummer von X (X-1.2) erhöht haben
Dann sollte X-1.2 installiert/bereitgestellt worden sein und Sie sollten Ihre Projektabhängigkeit von X geändert haben, um von der neuen Version X-1.2 abhängig zu sein

6
crowne
mvn clean install -U

-U bedeutet die Aktualisierung von Abhängigkeiten erzwingen.

Wenn Sie eine einzelne Abhängigkeit ohne clean oder -U aktualisieren möchten, können Sie sie einfach aus Ihrem lokalen Repo entfernen und dann erstellen.

6
ArpitBora

Wenn Sie wirklich alle Abhängigkeiten zwingen möchten, können Sie versuchen, das gesamte Maven-Repository neu zu initialisieren. Wie in diesem Artikel können Sie bereits beschrieben:

mvn -Dmaven.repo.local=$HOME/.my/other/repository clean install
4
Bart den Haak

Löschen Sie einfach ~/.m2/repository ...../actual_path, wo der ungültige LOC erscheint, da er die gelöschten JAR-Dateien erneut herunterladen muss. Nicht den gesamten Repository-Ordner löschen Stattdessen den spezifischen Ordner löschen, aus dem der Fehler stammt.

1
Saurabh Oza

Wenn Sie die Gruppen-ID von X kennen, können Sie mit diesem Befehl alle X und ihre Abhängigkeiten erneut herunterladen

mvn clean dependency:purge-local-repository -DresolutionFuzziness=org.id.of.x

Es tut dasselbe wie die anderen Antworten, die dependency:purge-local-repository vorschlagen, aber es löscht nur alles, was mit X zusammenhängt.

0
smac89

Die meisten der oben angegebenen Antworten würden das Problem lösen.

Wenn Sie jedoch IntelliJ verwenden und möchten, dass es automatisch für Sie behoben wird, gehen Sie zu Maven-Einstellungen.

Build, Ausführung, Bereitstellung -> Build-Tools -> Maven

 enter image description here

Offline-Arbeit deaktivieren

Schnappschüsse immer aktualisieren (bei Bedarf wechseln)