Today while doing the release of our project, the release:perform command failed in between as our nexus was having intermittent issues. The release command only able to upload one pom file to nexus.
Now, the nexus issue is resolved and I am trying to do the release, it fails as the pom file already exists and its not the snapshot version and we don't have access to nexus so that I can delete that file and start over again.
Is there any way I can pass an argument so that release:perform should continue if the file is already there and ignore this but continue with uploading the rest.
I have looked for options of such type but didn't find anything.
My last resource would be to start the release again, which will bump the version number, but would like to understand if there is any other approach where in I don't need to bump the version.
I am using maven 2.2.1
Here's how I have handled this in the past. The release:perform
command does a checkout of the tag from your SCM provider (e.g. SVN). This is done in the target/checkout
directory of that project - whatever is there should be an exact copy of the released tag, so it will have the right version number in the pom files etc.
If you move to that directory (target/checkout
in the directory where you started the release), you can simply do a mvn deploy
there and it should compile and package that version, and then upload it to your Nexus instance.
If you don't have the target/checkout
directory, you can check out the Tag created as part of the release:prepare
phase from your SCM system to a fresh directory and run mvn deploy
there.
Since the tag in your SCM has already been created, the only thing that's left is really compiling, packaging and deploying the release, which is exactly what mvn deploy
should do.
If you have provided additional parameters (e.g. for activating profiles) for the build during the call to mvn release:perform
, you will have to provide these as well when you run mvn deploy
.
Using this approach, your version number will not have to change, it can stay the same, since you're just uploading what has already been tagged as part of mvn release:prepare
.