2014-09-23 9 views
19

Wenn ich mvn release:perform auf einer übergeordneten POM ausführen, wird der Server mit diesem Fehler um einen der Kinderprojekte (Dateinamen unkenntlich gemacht) reagiert:Nexus akzeptiert hochladen, aber sagt, es ist fehlgeschlagen

[ERROR] Fehler Ziel auszuführen org.apache.maven.plugins: maven-deploy-plugin: 2.7: deploy-datei (default-cli) für Projekt: Fehler beim Bereitstellen von Artefakten: Konnte nicht Artefakt von/in Repository übertragen: Datei konnte nicht übertragen werden. Rückgabecode ist: 400, ReasonPhrase: Ungültige Anforderung.

Alle Dateien für dieses untergeordnete Projekt sind jedoch erfolgreich hochgeladen! Ich sehe ein neues Verzeichnis (benannt nach der Release-Nummer) und es enthält alle .jar, .pom, .md5 und .sha1 Dateien, die man erwarten würde.

Ich habe keinen Zugriff auf den Nexus-Server, aber ich frage mich, was könnte dies verursachen und wie es zu beheben. Ist es möglich, dass Maven versucht, dieses spezielle Kindprojekt zweimal hochzuladen? Wenn ja, warum sollte Maven das machen und wie kann ich es stoppen?

UPDATE: Wenn Sie das gleiche Problem haben, überprüfen Sie die Antwort mit den meisten Upvotes in this post. Ich lief mvn help:effective-pom und festgestellt, dass das fragliche Projekt hatte tatsächlich zwei Ausführungen der Bereitstellungsphase. Das Entfernen einer dieser Ausführungen löste mein Problem.

+0

Ist die Version, die Sie bereitstellen möchten, bereits vorhanden? – StackFlowed

+0

@wrongAnswer: Nein. Als der Fehler zum ersten Mal auftrat, dachte ich, dass das vielleicht das Problem war, also löschte ich explizit das neue Verzeichnis des Artefakts (zusammen mit dem Verzeichnis eines anderen untergeordneten Projekts, das ohne Fehler hochgeladen wurde) und versuchte es erneut. Dies führte zu dem gleichen Problem: Die beiden untergeordneten Projekte wurden hochgeladen, aber die zweite gab die "Bad Request" erneut, obwohl sie erfolgreich hochgeladen wurde. –

+2

Können Sie den vollständigen Fehler geben ... – StackFlowed

Antwort

3

Ich stieß auf das gleiche Problem und veröffentlichte ein Multi-Modul-Projekt. Beim ersten Mal ist ein Fehler aufgetreten, aber das Bereitstellungsziel hat bereits kontaktiert und dann den entsprechenden Pfad erstellt. Unter der Annahme, dass ein "release" -Repo einmal beschreibbar ist, weigert sich das zweite Mal, wenn ich es trete, , den Pfad zu überschreiben.

In diesem Fall können Sie Ihren Administrator bitten, das Repo zu löschen oder eine neue Version zu erstellen.

PS: besser spät als nie;)

Verwandte Themen