2010-03-27 5 views
52

Ich habe eine Eclipse-Setup mit m2eclipse und subversive. Ich habe ein maven2-Projekt von svn importiert. Aber ich bekomme die Fehlermeldung, dass eine ganze Reihe von Artefakten fehlt (zum Beispiel: Fehlendes Artefakt org.springframework: spring-test: jar: 3.0.1.RELEASE: test).Maven downloads haben .lastUpdated als Erweiterung

Wenn ich in meinem Repository nachschaue, sehe ich die JAR-Dateien dort, aber sie haben eine zusätzliche Erweiterung .lastUpdated. Warum fügt Maven .last zu den Gläsern hinzu? Und noch wichtiger: Wie kann ich das beheben?

Der Typ lastUpdated in meinen POMs wird nicht erwähnt.

Antwort

6

Ich installierte Maven2 und rannte mvn compile von der Kommandozeile aus. Dies scheint das Problem gelöst zu haben

+0

Kompilieren über die Befehlszeile löste dieses Problem für mich. Ich denke, das könnte ein Problem sein, das sich auf die Finsternis bezieht. – TAN70

+0

Das hat in Maven 3 total funktioniert. Danke – SparkleGoat

+0

Unter Windows 7 Professional SP 1, hatte ich 2017 ähnliche Probleme mit dem Eclipse-Plug-in und habe es zugunsten der CLI aufgegeben, die viel umfassendere, brauchbare Berichte gibt, die ich speichern und in Excel importieren kann und generieren Sie alle möglichen nützlichen Berichte über fehlende Pakete, Dateien, die nicht heruntergeladen wurden, über ungepaarte POMs und JARs und andere nützliche Statistiken. –

1

Sie haben möglicherweise ein Problem mit einigen Artefakten, die aus dem Repository abgerufen werden sollen. Zum Beispiel hat Spring Framework ein eigenes Repository. Diese Erweiterung wird angehängt, wenn das Artefakt nicht vollständig heruntergeladen werden kann. Fügen Sie das Spring Framework Repository zu Ihrem Pom oder settings.xml, löschen Sie den Ordner, der die gebrochenen Gläser enthalten und starten Sie erneut

+0

Zustimmen. Anstelle eines gültigen Pom oder Jars ist normalerweise ein Pom oder Jar, der mit einem lastUpdate beendet wird, nur 2k groß, dessen Inhalt eher wie ein Fehlerprotokoll aussieht. Gewöhnlich ist ein Ergebnis von "versäumt, Abhängigkeiten zu sammeln ..." – Tiina

+0

Das ist eine interessante Art, von ihnen zu denken; Ich habe sie immer als separate Entitäten (zuletzt aktualisierte Dateien) und nicht als JARs oder POMs betrachtet, über die sie berichten. Auf die gleiche Weise denke ich an MyDotNetAssembly.exe.config als eindeutigen Dateityp von MyDotNetAssembly.exe. –

11

Als rperez sagte, ich benutze, um alle diese .lastUpdated Dateien zu löschen. In Linux Ich habe ein kleines Skript zu erstellt es einfach halten:

find -name \*.lastUpdated -exec rm -fv {} + 

einfach eine Datei mit dem vorherigen Inhalt erstellen und es auf Ihrer lokale Maven-Repository. Normalerweise wird es ~/.m2/repository sein.

+1

in zsh: 'rm ~/.m2/Repository/**/*. LastUpdated' – Dacav

+0

in Powershell:' ls *.lastupdated -Recurse | rm' – rob

+0

Sie können auch einfach das 'delete' -Flag von find verwenden, um die gefundenen Dateien zu löschen, statt' exm'ing 'rm' auf den Ergebnissen. Zum Beispiel, 'finde ~/.m2 -name * .lastUpdated -delete' – spaaarky21

1

Wenn Sie auf dieses Problem stoßen und Nexus verwenden, ist möglicherweise eine Routing-Regel definiert, die nicht korrekt ist. Ich schlug das selbst und die Dateien, die es heruntergeladen wurde, wurden korrekt benannt, an der richtigen URL-s es sah, aber sie waren alle mit der .lastUpdated Erweiterung und eine Fehlermeldung als Inhalt.

34

Diese Dateien zeigen Maven an, dass es versuchte, das Archiv per Download zu erhalten, aber nicht erfolgreich war. Um Bandbreite zu sparen, wird dies nicht wiederholt, bis ein bestimmter in der Datei codierter Zeitraum verstrichen ist. Der Befehlszeilenschalter -U force maven führt die Aktualisierung vor der Wiederholungszeit durch. Dies kann erforderlich sein, wenn Sie versuchen, eine Verbindung aufzubauen, während die Verbindung zum Netzwerk getrennt ist.

Die Methode zum Entfernen der Dateien funktioniert mit den meisten Versionen von Maven, aber da die Dateien interne Memos sind, würde ich diese Methode nicht empfehlen. Es kann nicht garantiert werden, dass diese Informationen nicht referenziert oder anderweitig gespeichert werden, und solche Manipulationen können das System beschädigen.

+0

Ich versuchte mvn -U sauber, aber es behebt das Problem nicht. Fehle ich etwas? – MiguelMunoz