Nexus accepts upload but says it failed

Rob Johansen picture Rob Johansen · Sep 23, 2014 · Viewed 16.8k times · Source

When I execute mvn release:perform on a parent POM, the server is responding with this error about one of the child projects (filenames redacted):

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file (default-cli) on project: Failed to deploy artifacts: Could not transfer artifact from/to repository: Failed to transfer file. Return code is: 400, ReasonPhrase: Bad Request.

However, all the files for this child project are successfully uploaded! I see a new directory (named after the release version number) and it contains all the .jar, .pom, .md5, and .sha1 files one would expect.

I don't have access to the Nexus server, but I'm wondering what might cause this and how to fix it. Is it possible that Maven is trying to upload this particular child project twice? If so, why would Maven be doing this and how can I stop it?

UPDATE: If you're having the same problem, check out the answer with the most upvotes in this post. I ran mvn help:effective-pom and found that the project in question actually had two executions of the deploy phase. Removing one of those executions solved my problem.

Answer

Jean-Rémy Revy picture Jean-Rémy Revy · Mar 23, 2016

I encountered the same issue, releasing a multi-module project. An error occured the first time but the deploy goal had already contact and then create the appropriate path. Assuming that a "release" repo is a write-once one, the second time I trggered it, refuse to overwrite the path.

So, in such a case, you might ask your admin to delete the repo ... or create a new release.

PS : better late than never ;)