in maven-release-manager/src/main/java/org/apache/maven/shared/release/DefaultReleaseManager.java [348:400]
public void branch(ReleaseBranchRequest branchRequest) throws ReleaseExecutionException, ReleaseFailureException {
final ReleaseDescriptorBuilder builder = branchRequest.getReleaseDescriptorBuilder();
ReleaseUtils.copyPropertiesToReleaseDescriptor(
branchRequest.getUserProperties(), new ReleaseDescriptorBuilder() {
public ReleaseDescriptorBuilder addDevelopmentVersion(String key, String value) {
builder.addDevelopmentVersion(key, value);
return this;
}
public ReleaseDescriptorBuilder addReleaseVersion(String key, String value) {
builder.addReleaseVersion(key, value);
return this;
}
});
ReleaseDescriptor releaseDescriptor = loadReleaseDescriptor(builder, branchRequest.getReleaseManagerListener());
boolean dryRun = BooleanUtils.isTrue(branchRequest.getDryRun());
Strategy releaseStrategy = getStrategy(releaseDescriptor.getReleaseStrategyId());
List<String> branchPhases = getGoalPhases(releaseStrategy, "branch");
goalStart(branchRequest.getReleaseManagerListener(), "branch", branchPhases);
for (String name : branchPhases) {
ReleasePhase phase = releasePhases.get(name);
if (phase == null) {
throw new ReleaseExecutionException("Unable to find phase '" + name + "' to execute");
}
phaseStart(branchRequest.getReleaseManagerListener(), name);
if (dryRun) {
phase.simulate(
releaseDescriptor, branchRequest.getReleaseEnvironment(), branchRequest.getReactorProjects());
} else // getDryRun is null or FALSE
{
phase.execute(
releaseDescriptor, branchRequest.getReleaseEnvironment(), branchRequest.getReactorProjects());
}
phaseEnd(branchRequest.getReleaseManagerListener());
}
if (!dryRun) {
clean(branchRequest);
}
goalEnd(branchRequest.getReleaseManagerListener());
}