Skip to content

Commit 434f9be

Browse files
committed
Add ability to increment feature version during feature-finish goal - closes #162
1 parent 14a282f commit 434f9be

File tree

2 files changed

+42
-5
lines changed

2 files changed

+42
-5
lines changed

src/main/java/com/amashchenko/maven/plugin/gitflow/CommitMessages.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ public class CommitMessages {
5353
private String updateReleaseBackPreMergeStateMessage;
5454

5555
private String updateFeatureBackMessage;
56+
private String featureFinishIncrementVersionMessage;
5657

5758
public CommitMessages() {
5859
featureStartMessage = "Update versions for feature branch";
@@ -81,6 +82,7 @@ public CommitMessages() {
8182
updateReleaseBackPreMergeStateMessage = "Update release version back to pre-merge state";
8283

8384
updateFeatureBackMessage = "Update feature branch back to feature version";
85+
featureFinishIncrementVersionMessage = "Increment feature version";
8486
}
8587

8688
/**
@@ -406,4 +408,19 @@ public String getUpdateFeatureBackMessage() {
406408
public void setUpdateFeatureBackMessage(String updateFeatureBackMessage) {
407409
this.updateFeatureBackMessage = updateFeatureBackMessage;
408410
}
411+
412+
/**
413+
* @return the featureFinishIncrementVersionMessage
414+
*/
415+
public String getFeatureFinishIncrementVersionMessage() {
416+
return featureFinishIncrementVersionMessage;
417+
}
418+
419+
/**
420+
* @param featureFinishIncrementVersionMessage
421+
* the featureFinishIncrementVersionMessage to set
422+
*/
423+
public void setFeatureFinishIncrementVersionMessage(String featureFinishIncrementVersionMessage) {
424+
this.featureFinishIncrementVersionMessage = featureFinishIncrementVersionMessage;
425+
}
409426
}

src/main/java/com/amashchenko/maven/plugin/gitflow/GitFlowFeatureFinishMojo.java

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,12 @@ public class GitFlowFeatureFinishMojo extends AbstractGitFlowMojo {
8989
@Parameter(property = "postFeatureFinishGoals")
9090
private String postFeatureFinishGoals;
9191

92+
/**
93+
* Whether to increment the version during feature-finish goal.
94+
*
95+
*/
96+
@Parameter(property = "incrementVersionAtFinish", defaultValue = "false")
97+
private boolean incrementVersionAtFinish;
9298

9399
/** {@inheritDoc} */
94100
@Override
@@ -138,12 +144,26 @@ public void execute() throws MojoExecutionException, MojoFailureException {
138144
mvnRun(preFeatureFinishGoals);
139145
}
140146

141-
final String currentFeatureVersion = getCurrentProjectVersion();
147+
String featureVersion = getCurrentProjectVersion();
142148

143149
final String featName = featureBranchName.replaceFirst(gitFlowConfig.getFeatureBranchPrefix(), "");
144150

145-
if (currentFeatureVersion.contains("-" + featName)) {
146-
final String version = currentFeatureVersion.replaceFirst("-" + featName, "");
151+
if (incrementVersionAtFinish) {
152+
GitFlowVersionInfo developVersionInfo = new GitFlowVersionInfo(featureVersion);
153+
featureVersion = developVersionInfo.nextSnapshotVersion();
154+
155+
mvnSetVersions(featureVersion);
156+
157+
Map<String, String> properties = new HashMap<String, String>();
158+
properties.put("version", featureVersion);
159+
properties.put("featureName", featName);
160+
gitCommit(commitMessages.getFeatureFinishIncrementVersionMessage(), properties);
161+
}
162+
163+
final String keptFeatureVersion = featureVersion;
164+
165+
if (keptFeatureVersion.contains("-" + featName)) {
166+
final String version = keptFeatureVersion.replaceFirst("-" + featName, "");
147167

148168
// mvn versions:set -DnewVersion=... -DgenerateBackupPoms=false
149169
mvnSetVersions(version);
@@ -181,10 +201,10 @@ public void execute() throws MojoExecutionException, MojoFailureException {
181201
if (keepBranch) {
182202
gitCheckout(featureBranchName);
183203

184-
mvnSetVersions(currentFeatureVersion);
204+
mvnSetVersions(keptFeatureVersion);
185205

186206
Map<String, String> properties = new HashMap<String, String>();
187-
properties.put("version", currentFeatureVersion);
207+
properties.put("version", keptFeatureVersion);
188208
properties.put("featureName", featName);
189209

190210
gitCommit(commitMessages.getUpdateFeatureBackMessage(), properties);

0 commit comments

Comments
 (0)