On 1 Mar 2018, at 2:56, Ben Tatham wrote: > Sounds like you're using gitflow (master, develop, feature/* branches). If > so, we use the jgitflow-maven-plugin instead of maven-release-plugin, which > handles these transitions and the inherent conflicts caused by the maven > versioning. > > Unfortunately, the maintainer is no longer working on it (and says he's not > even working in java anymore), but it still works well.
For my own git-flow based releases I have the following `git-mvnrelease` script I have on the path: ```shell #!/bin/sh if ! git diff-index --quiet HEAD --; then echo "Git is dirty, clean up your mess!" exit 1 fi VERSION=`xml sel -N x="http://maven.apache.org/POM/4.0.0" -t -v "/x:project/x:version" pom.xml` BASEVERSION=${VERSION%-SNAPSHOT} ARTIFACTID=`xml sel -N x="http://maven.apache.org/POM/4.0.0" -t -v "/x:project/x:artifactId" pom.xml` echo "Removing non-scm files..." git clean -fdi echo "Checking master branch for updates..." git checkout master git pull origin master git flow release start $BASEVERSION && mvn release:prepare release:perform && git flow release finish -n $BASEVERSION && git push origin && git push origin --tags ``` This first checks my working directory is clean, just for safety, extracts the pom.xml version for use in branch/tag names. Switches to my `master` branch and makes sure it's up to date, then does a batch release/push. I don't think I've ever had any issues with maven versioning, unless the version number as part of the release/merge has changed to something unexpected. YMMV Mark --- "The ease with which a change can be implemented has no relevance at all to whether it is the right change for the (Java) Platform for all time." — Mark Reinhold. Mark Derricutt http://www.theoryinpractice.net http://www.chaliceofblood.net http://plus.google.com/+MarkDerricutt http://twitter.com/talios http://facebook.com/mderricutt
signature.asc
Description: OpenPGP digital signature