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.
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
Ich habe gerade mein ~/.m2/Repository gelöscht und das hat einen erneuten Download erzwungen;)
Ich denke, der folgende Befehl kann Ihnen helfen!
mvn -U clean install
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.
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 :)
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.
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
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.
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
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.
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.
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
Offline-Arbeit deaktivieren
Schnappschüsse immer aktualisieren (bei Bedarf wechseln)