Maven Release: Prepare/Perform after Rollback incorrectly succeeds with wrong content -
we use maven subversion internally. use maven's release plugin. noticed issue described below when running through following (correct, presume) steps.
1. run release:prepare:
- maven updates trunk version
1.0.0. - maven runs
svn copy trunk/myproject tags/myproject-1.0.0, creating tagmyproject-1.0.0. - maven updates trunk version
1.0.1-snapshot.
2. run release:rollback:
- maven resets trunk version
1.0.0-snapshot. - maven not remove tag, because maven doesn't kind of stuff.
3. commit more changes trunk, against version 1.0.0-snapshot.
4. run release:prepare again:
- maven updates trunk version
1.0.0. - maven runs
svn copy trunk/myproject tags/myproject-1.0.0, thinking created tagmyproject-1.0.0out of latest trunk. but, alas, subversion (1.6 , 1.7 alike) instead createtags/myproject-1.0.0/myprojecton maven's behalf.
5. run release:perform:
- maven checks out contents of tag
myproject-1.0.0. - maven builds contents , deploys result nexus.
the problem obvious: change in step 3 did not make tag. releasing 1.0.0 without change in it.
the questions are: how can fix this? maven's release rollback feature inherently broken?
in fairness, rollback should reset project , scm state allows second prepare occur. this includes removing tag. answer apparent (googling "maven release rollback remove tag"):
http://maven.apache.org/maven-release/maven-release-plugin/examples/rollback-release.html:
the created branch/tag in scm release removed. note: not yet implemented you need manually remove branch/tag scm. more info see mrelease-229.
the resolution force release:rollback include command delete scm tag using org.codehaus.mojo:exec-maven-plugin. short of this, wrap rollback inside script externally.
Comments
Post a Comment