Ich habe mein bereits funktionierendes Projekt auf einen anderen Computer importiert und es begann, Abhängigkeiten herunterzuladen.
Anscheinend ist meine Internetverbindung abgestürzt und jetzt bekomme ich folgendes:
>Build errors for comics; org.apache.maven.lifecycle.LifecycleExecutionException:
Failed to execute goal on project comicsTest: Could not resolve dependencies for project comicsTest:comicsTest:war:0.0.1-SNAPSHOT:
The following artifacts could not be resolved:
org.springframework:spring-context:jar:3.0.5.RELEASE,
org.hibernate:hibernate-entitymanager:jar:3.6.0.Final,
org.hibernate:hibernate-core:jar:3.6.0.Final,
org.hibernate:hibernate-commons-annotations:jar:3.2.0.Final,
org.aspectj:aspectjweaver:jar:1.6.8,
commons-lang:commons-lang:jar:2.5,
>mysql:mysql-connector-java:jar:5.1.13: Failure to transfer org.springframework:spring-context:jar:3.0.5.RELEASE from http://repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced.
>Original error: Could not transfer artifact org.springframework:spring-context:jar:3.0.5.RELEASE from central (http://repo1.maven.org/maven2): No response received after 60000
Wie zwinge ich Maven zum Update?
Antworten:
-U
bedeutet, dass die Aktualisierung von Snapshot- Abhängigkeiten erzwungen wird . Release-Abhängigkeiten können auf diese Weise nicht aktualisiert werden.quelle
Wenn Ihr lokales Repository im Gegensatz zu Snapshots (
-U
und--update-snapshots
nur Snapshots aktualisieren) für Release-Jars irgendwie durcheinander ist ( und nur Snapshots aktualisieren), können Sie das lokale Repo wie folgt löschen:Sie möchten dann wahrscheinlich reinigen und erneut installieren:
Viele weitere Informationen finden Sie unter https://maven.apache.org/plugins/maven-dependency-plugin/examples/purging-local-repository.html
quelle
mvn dependency:purge-local-repository
, hat es einfach alle Abhängigkeiten erneut heruntergeladen, was genau das ist, was ich wollte-U
scheint die Aktualisierung aller Abhängigkeiten zu erzwingen.Wenn Sie eine einzelne Abhängigkeit ohne Bereinigung aktualisieren möchten, können
-U
Sie sie einfach aus Ihrem lokalen Repo entfernen und dann erstellen.Das folgende Beispiel für die Aktualisierung
slf4j-api 1.7.1-SNAPSHOT
:quelle
Alle Antworten hier haben bei mir nicht funktioniert. Ich habe die Hammermethode verwendet:
Das hat das Problem behoben :-)
quelle
.m2
-verzeichnis mit dem Namen*.lastUpdated
find ~/.m2/ -name "*.lastUpdated" -delete
würde ohne die Gefahrxargs
oderrm
Überschreitung einiger Grenzen auskommen (wenn viele Dateien gefunden werden).Sie können effektiv aus tun
Eclipse IDE
. Natürlich, wenn Sie es verwenden.quelle
Nur für den Fall, dass jemand nur die Snapshot-Abhängigkeiten des Projekts aktualisieren und kein Artefakt installieren möchte:
Vergessen Sie nicht, Abhängigkeiten in Ihre IDE erneut zu importieren. In IDEA müssen Sie mit der rechten Maustaste auf die POM-Datei klicken und Maven -> Reimport wählen
quelle
Wenn Sie sich nicht sicher sind, was sich in Ihrem lokalen Repository befindet, empfehle ich, einen Build mit der folgenden Option auszulösen:
Auf diese Weise stellen Sie sicher, dass Sie in einer Reinraumumgebung bauen.
quelle
In meinem Fall war ich zuerst:
Trotzdem zeigte es den gleichen Fehler, als ich das Projekt schloss und es erneut öffnete. Endlich funktioniert.
quelle
Wenn Sie die Eclipse-IDE verwenden, gehen Sie wie folgt vor :
Drücken Sie Alt + F5. Das Fenster für Update Maven Project wird geöffnet.
Aktivieren - Aktualisierung von Snapshots / Releases erzwingen und auf OK klicken.
Bei Verwendung von Intellij IDE
quelle
Ich habe die IntelliJ IDE verwendet und hatte ein ähnliches Problem. Um dieses Problem zu lösen, habe ich auf der Registerkarte Maven auf "Quellen generieren und Ordner für alle Projekte aktualisieren" geklickt.
quelle
Ich habe den Fehler in einem anderen Kontext. Meine Lösung könnte also für andere nützlich sein, die sich mit der Frage auseinandersetzen:
Das Problem: Ich habe das lokale Repository auf einen anderen Computer kopiert, der keine Verbindung zu einem speziellen Repository hat. Also versuchte Maven, die Artefakte mit dem ungültigen Repository zu vergleichen.
Meine Lösung: Entfernen Sie die Dateien _maven.repositories.
quelle
Dies ist eines der nervigsten Dinge an Maven. Für mich passiert Folgendes: Wenn ich eine Abhängigkeit hinzufüge, die mehr und mehr Abhängigkeiten anfordert, aber eine langsame Verbindung hat, stoppt sie scheinbar beim Herunterladen und beim Timeout. Während das Zeitlimit überschritten wird, werden alle noch nicht abgerufenen Abhängigkeiten mit Platzhaltern im .m2-Cache markiert, und Maven nimmt sie (nie) auf, es sei denn, ich entferne den Platzhaltereintrag (wie angegeben) aus dem Cache, indem ich ihn entferne.
Soweit ich es sehe, hat Maven oder genauer gesagt das Eclipse Maven-Plugin einen Fehler in dieser Hinsicht. Jemand sollte dies melden.
quelle
Sie müssen Ihre settings.xml-Datei unter überprüfen
<maven_home>/conf
Verzeichnis .quelle
Ich habe den gleichen Fehler mit der Abhängigkeit von Android-Maps-Utils. Die Verwendung eines aar-Typ-Pakets im Abhängigkeitsabschnitt löst mein Problem. Standardmäßig ist der Typ jar, daher wird möglicherweise überprüft, welche Art von Abhängigkeit im Repository heruntergeladen wird.
quelle
So beheben Sie dieses Problem mit Eclipse:
1) Fügen Sie die folgende Abhängigkeit in Maven pom.xml hinzu und speichern Sie die Datei pom.xml.
2) Gehen Sie zu Projekt >> Maven >> Projekt aktualisieren
Wählen Sie das Projekt aus und klicken Sie auf OK.
3) Optionaler Schritt, wenn er erst in Schritt 2 behoben wurde, führen Sie den folgenden Schritt nach Schritt 1 aus
Gehen Sie zu Projekt >> Maven >> Projekt aktualisieren >> Aktivieren Sie das Kontrollkästchen 'Aktualisierung von Snapshots / Releases erzwingen'.
Wählen Sie das Projekt aus und klicken Sie auf OK.
quelle
Frühere Versionen von maven haben die Überprüfung auf fehlende Releases nicht erzwungen bei Verwendung von -U mit mvn clean install erzwungen, sondern nur die Snapshots, obwohl die neuere Version dies unterstützt.
Für jemanden, der immer noch mit der vorherigen Version zu kämpfen hat, kann Folgendes hilfreich sein:
Unter Windows:
Unter Linux:
Wenn maven aus irgendeinem Grund keine Abhängigkeiten herunterladen kann (Konnektivität / nicht vorhanden usw.), wird in der Datei dependency-name.lastUpdate im entsprechenden Ordner unter dem Verzeichnis $ home / .m2 das ".error = Artefakt konnte nicht übertragen werden" hinzugefügt. Durch das Entfernen dieser Dateien wird maven gezwungen, die Abhängigkeiten erneut abzurufen.
quelle
Es ist wichtig hinzuzufügen, dass der Hauptunterschied beim Ausführen
mvn
mit -U und ohne -U darin besteht, dass-U
Ihre lokalen SNAPSHOT-Jars mit Remote-SNAPSHOT-Jars überschrieben werden.Lokale SNAPSHOT-Jars, die aus lokalen erstellt
mvn install
wurden, wenn Sie andere Module Ihres Projekts haben, die Jars generieren.quelle
-U wird verwendet, um Update Maven Repo zu erzwingen. Verwenden
quelle
Ich habe alle Antworten hier ausprobiert, aber nichts schien zu funktionieren. Zuerst wurde mein Computer neu gestartet und dann ausgeführt
mvn clean install -U
. Das hat mein Problem gelöst.quelle
Maven lädt alle Abhängigkeiten Ihres Projekts in Ihr lokales Repo (Ordner .m2) herunter. Aufgrund des Internets, das Probleme mit Ihrem lokalen Repo verursacht, ist Ihr Projekt mit Problemen konfrontiert. Ich bin nicht sicher, ob dies Ihnen sicherlich helfen wird oder nicht, aber Sie können versuchen, alle Dateien im Repository-Ordner im Ordner .m2 zu löschen. Da das lokale Repo nichts enthalten würde, wäre maven gezwungen, die Abhängigkeiten erneut herunterzuladen, wodurch ein Update erzwungen würde. Im Allgemeinen befindet sich der Ordner .m2 unter c: users: [Benutzername]:. M2
quelle
Ich hatte dieses Problem aus einem anderen Grund. Ich ging zum Maven-Repository https://mvnrepository.com und suchte nach der neuesten Version von Spring Core, die zu diesem Zeitpunkt 5.0.0.M3 war. Das Repository zeigte mir diesen Eintrag für meine pom.xml:
Naiver Dummkopf, ich bin, ich nahm an, dass der Kommentar mir sagte, dass sich das Glas im Standard-Repository befindet.
Nach vielem Headbangen sah ich jedoch eine Notiz direkt unter der XML-Datei mit der Aufschrift "Hinweis: Dieses Artefakt befindet sich im öffentlichen Repository von Alfresco ( https://artifacts.alfresco.com/nexus/content/repositories/public/ )." ""
Der Kommentar im XML ist also völlig irreführend. Das Glas befindet sich in einem anderen Archiv, weshalb Maven es nicht finden konnte!
quelle
Mit dem folgenden Befehl können wir erzwingen, dass das neueste Update der Version und des Snapshot-Repositorys abgerufen wird:
quelle
Ich hatte den gleichen Fehler und das Laufen
mvn install -U
und dann Laufenmvn install
funktionierte für mich.quelle
Ich bin kürzlich darauf gestoßen und habe durch Ausführen des Folgenden alle Probleme behoben
quelle
-fae,--fail-at-end Only fail the build afterwards; allow all non-impacted builds to continue
Es scheint eine seltsame Art, nicht aktualisierte externe Abhängigkeiten zu beheben.mvn clean install -U
funktioniert nicht Jedochmvn -U clean
gefolgt vonmvn clean install
tut.quelle