public void branch()

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());
    }