JGIT-Flow Maven Plugin is an alternative to the old maven-release-plugin that supports git-flow via maven.

The main benefit of using this plugin is that it handles git branches/tags, pom versions (both release and SNAPSHOTS), and builds the project after each merging/rebasing to ensure stability.

A work-flow example

git init
git remote add origin https://github.com/alfredodiaz/kata-jgitflow.git
git add .
git commit -m 'first commit'
mvn jgitflow:feature-start -DenableFeatureVersions=true -DpushFeatures=true
mvn jgitflow:feature-finish -DenableFeatureVersions=true -DpushFeatures=true -DfeatureRebase=true -DkeepBranch=true
mvn jgitflow:release-start -DpushReleases=true -DautoVersionSubmodules=true
mvn jgitflow:release-finish -DpushReleases=true -DautoVersionSubmodules=true -DkeepBranch=true
mvn jgitflow:hotfix-start -DpushHotfixes=true -DautoVersionSubmodules=true
mvn jgitflow:hotfix-finish -DpushHotfixes=true -DautoVersionSubmodules=true -DkeepBranch=true