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?