How to use maven-release-plugin with 2 branches

1.2k Views Asked by At

I'm trying to determine if there is a way to use the maven-release-plugin with my SCM setup. The way that the SCM is setup is that there are 2 long living branches - a development branch (DEV) and an Integration branch (INT). I'm using JazzRTC as an SCM, but I don't think that the SCM choice is necessarily an important factor. There is already a Maven SCM Jazz Provider.

Typical workflow is to start a version in the dev branch (ex: 1.0.0-SNAPSHOT) and commit all changes to the DEV branch. Once the branch is ready for release, all changes are merged into the INT branch, the pom's versions are changed (ex: 1.0.0) and a package is deployed from the INT branch.

At this point, the pom versions on the dev branch are updated (1.0.1-SNAPSHOT) and further development continues for bug fixes, updates, etc.

Given the default workflow of the release-plugin, I'm trying to figure out if it is even usable in my context. At the moment, the release plugin cycles through the following phases:

  • Check that there are no uncommitted changes in the sources
  • Check that there are no SNAPSHOT dependencies
  • Change the version in the POMs from x-SNAPSHOT to a new version (you will be prompted for the versions to use)
  • Transform the SCM information in the POM to include the final destination of the tag
  • Run the project tests against the modified POMs to confirm everything is in working order
  • Commit the modified POMs
  • Tag the code in the SCM with a version name (this will be prompted for)
  • Bump the version in the POMs to a new value y-SNAPSHOT (these values will also be prompted for)
  • Commit the modified POMs

My issue with these steps is that I do not want/need the POM changed from x-SNAPSHOT to a fixed version (ex: 1.0.0) and committed in the DEV branch, but rather in the INT branch.

Is there a way to use/configure the release-plugin given 2 separate branches like this?

0

There are 0 best solutions below