Ich stoße auf ein Mavenproblem, das alle meine Haare tötet.
Also am Anfang funktioniert mein ganzes Maven-Projekt gut. Und dann, als ich heute zu einem neuen Computer wechselte und versuchte, sie alle zu kompilieren.
Der erste Fehler, den ich von Eclipse sehe, ist ein IO-Fehler beim Lesen von JAR-Dateien aus dem lokalen maven-Repository. Dann habe ich gegoogelt und jemand hat vorgeschlagen, dass es sich um beschädigte Dateien handelt, lösche sie einfach und lass Maven das Repository neu erstellen.
Das löst das Problem für eine Weile. Und dann taucht es immer wieder auf.
Ich wurde müde und entfernte das gesamte lokale Repository und tat alles wieder. Dann habe ich die Ursache herausgefunden:
Das entfernte Maven-Repository ist BAD.
Hier ist ein Teil der Konsolenmeldungen.
%Vor%Ich stecke fest. Wie kann ich die echten Abhängigkeitsgläser erhalten? Wie kann ich Maven sagen, dies zu vermeiden? Das ist wirklich nervig.
Es gibt einen König der Käfer in Maven, einfach weil Maven kein Artefakt außer Acht lässt der maven repo sendet eine 301 (MOVED PERMANANTLY) und es einfach diese Nachricht und schreiben Sie es als die Pom-Datei. Wenn das maven repo 404 sendet, überspringt es dieses Repo und geht zu einem anderen, aber hier mit 301 wird die Nachricht einfach als Pom-Datei ausgegeben und später wird dies nicht mehr möglich sein.
Ich nehme an, Sie verwenden Maven 2.2.1? Wenn ja, versuchen Sie, auf Maven 2.2.0 herunterzustufen oder zusätzliche Einstellungen zu verwenden. In 2.2.1 wurde die Wagenimplementierung geändert.
Maven 2.2.1 zielt darauf ab, mehrere kritische Regressionen in Verbindung mit der Auswahl der HttpClient-basierten Wagon-Implementierung für HTTP / HTTPS-Transfers in Maven 2.2.0 zu korrigieren. Das neue Release setzt diese Auswahl zurück und stellt die Sun-basierte oder leichte Wagon-Implementierung als Standard für diese Art von Datenverkehr wieder her.
Maven 2.2.1 geht jedoch noch einen Schritt weiter, um eine Auswahl zu treffen, welcher Provider - oder Implementierung - der Benutzer für ein bestimmtes Übertragungsprotokoll verwenden möchte.
Versuchen Sie also, maven mit zusätzlichen Parametern auszuführen.
%Vor%Eine Antwort: vermeide dev.java.net. Es ist oft auf die eine oder andere Weise kaputt. Wenn Sie Dinge von dort benötigen, installieren Sie sie in einem lokalen Repository-Manager.
Ich habe diesen Fehler mit IntelliJ IDEA 13.1.5 und Ubuntu 14.04 gesehen.
Maven 2.2.? speichert den 301-Antworttext als JAR-Datei im ~ / .m2-Cache, was später während des Builds Probleme verursacht.
Der Fix für mich war Maven 3. Anweisungen für Ubuntu 14.04 sind hier:
Tags und Links maven-2 repository corruption