Ich arbeite an einem Projekt mit Abhängigkeit X. X wiederum hängt von Y ab.
Ich habe Y explizit in den Pom meines Projekts aufgenommen. Es wurde jedoch nicht verwendet und um die Dinge sauberer zu machen, habe ich es stattdessen als Abhängigkeit zu X 'Pom hinzugefügt. X ist als Release-Abhängigkeit markiert.
Das Problem ist, dass mein Projekt nach dem Entfernen von Y aus dem Pom meines Projekts und dem Hinzufügen zu X's Pom es nicht aufgreift mvn -U clean package
. Ich kenne -U Update-Snapshots, aber keine Releases.
Wie kann ich also einen erneuten Download von Xs POM erzwingen , ohne das Verzeichnis ~ / .m2 / repository zu löschen ? Außerdem habe ich versucht zu laufen dependency:purge-local-repository
und es hat auch nicht funktioniert.
X
des POM um eine neue Version handeln, auch wenn es sich nur um eine Änderung der Patch-Nummer handelt:1.3
->1.3.1
. Das würde dieses Problem also von Anfang an beseitigen.Antworten:
Sie können Maven nicht dazu bringen, Abhängigkeiten erneut herunterzuladen. Stattdessen können Sie Abhängigkeiten löschen, die mit falsch heruntergeladen wurden
mvn dependency:purge-local-repository
Siehe: http://maven.apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html
quelle
mvn dependency:purge-local-repository clean package
, kann ein Projekt dieselbe Abhängigkeit im lokalen Repository löschen, während ein anderes Projekt die Kompilierung ausführt. Wie vermeide ich?Ich habe gerade mein ~ / .m2 / Repository gelöscht und das erzwang einen erneuten Download;)
quelle
Ich denke, der folgende Befehl kann Ihnen helfen!
quelle
Dank Ali Tokmen Antwort. Ich habe es geschafft, das Löschen der spezifischen lokalen Abhängigkeit mit dem folgenden Befehl zu erzwingen:
utils
Dadurch wird es aus meinem .m2 / Repository entfernt und dieutils
JAR-Abhängigkeit wird beim Ausführen immer erneut heruntergeladenmvn clean install
.quelle
Projekt Rechtsklick-> Maven -> Projekt aktualisieren und aktivieren Sie die Kontrollkästchen wie im Screenshot. Es wird auch Releases aktualisieren :)
quelle
-U bedeutet 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.
quelle
Wenn Sie es zu X hinzugefügt haben, sollten Sie die Versionsnummer von X erhöht haben, dh X-1.2.
Dann sollte X-1.2 installiert / bereitgestellt worden sein und Sie sollten die Abhängigkeit Ihres Projekts von X geändert haben, um von der neuen Version X-1.2 abhängig zu sein
quelle
Wenn Sie die Gruppen-ID von kennen
X
, können Sie mit diesem Befehl alleX
und ihre Abhängigkeiten erneut herunterladenEs macht dasselbe wie die anderen Antworten, die die Verwendung vorschlagen
dependency:purge-local-repository
, aber es löscht nur alles, was damit zusammenhängt, und lädt es erneut herunterX
.quelle
Wenn Sie wirklich alle Abhängigkeiten erzwingen möchten, können Sie versuchen, das gesamte Maven-Repository neu zu initialisieren. Wie in diesem bereits beschriebenen Artikel können Sie Folgendes verwenden:
quelle
Löschen Sie einfach ~ / .m2 / repository ..... / actual_path, wo das ungültige LOC kommt, da es das erneute Herunterladen der gelöschten JAR-Dateien erzwingt. Löschen Sie nicht den gesamten Repository-Ordner, sondern den spezifischen Ordner, aus dem der Fehler stammt.
quelle
Durch Löschen des
~/.m2/repository
wird Ihr Problem gelöst. Aber wenn Sie noch das alte behalten müssen~/.m2/repository
können Sie nur den maven lokalen Pfad vorübergehend ändern.Wenn Sie an IntelliJ arbeiten, gehen Sie einfach zu Maven-Einstellungen und ändern Sie den Pfad des lokalen Repositorys an einen anderen Ort. Möglicherweise müssen Sie das Kontrollkästchen zum Überschreiben in der Nähe aktivieren.
quelle
Die meisten der oben angegebenen Antworten würden das Problem lösen.
Wenn Sie IntelliJ verwenden und möchten, dass es nur automatisch für Sie repariert wird, gehen Sie zu Maven-Einstellungen.
Erstellen, Ausführen, Bereitstellen -> Erstellen von Tools -> Maven
Offline-Arbeit deaktivieren
Aktivieren Immer Snapshots aktualisieren (bei Bedarf wechseln)
quelle
Gehen Sie zum Erstellungspfad ... löschen Sie die vorhandene Maven-Bibliothek, die Sie hinzugefügt haben ... klicken Sie auf Bibliothek hinzufügen ... klicken Sie auf von Maven verwaltete Abhängigkeiten ... und klicken Sie dann auf Maven-Projekteinstellungen ... aktivieren Sie das Kontrollkästchen Maven-Abhängigkeiten auflösen ... es werden alle heruntergeladen Maven-Abhängigkeiten
quelle