protected ReleaseDescriptorBuilder createReleaseDescriptor()

in maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java [152:198]


    protected ReleaseDescriptorBuilder createReleaseDescriptor() {
        ReleaseDescriptorBuilder descriptor = new ReleaseDescriptorBuilder();

        descriptor.setInteractive(settings.isInteractiveMode());

        Path workingDirectory;
        try {
            workingDirectory = getCommonBasedir(reactorProjects);
        } catch (IOException e) {
            throw new RuntimeException(e.getMessage());
        }
        descriptor.setWorkingDirectory(workingDirectory.toFile().getAbsolutePath());

        Path rootBasedir = basedir.toPath();
        if (rootBasedir.equals(workingDirectory)) {
            descriptor.setPomFileName(pomFileName);
        } else {
            descriptor.setPomFileName(workingDirectory
                    .relativize(rootBasedir)
                    .resolve(pomFileName)
                    .toString());
        }

        for (MavenProject project : reactorProjects) {
            String versionlessKey = ArtifactUtils.versionlessKey(project.getGroupId(), project.getArtifactId());
            descriptor.putOriginalVersion(versionlessKey, project.getVersion());
        }

        descriptor.setAdditionalArguments(this.arguments);

        List<String> profileIds = session.getRequest().getActiveProfiles();
        String additionalProfiles = getAdditionalProfiles();

        if (!profileIds.isEmpty() || StringUtils.isNotBlank(additionalProfiles)) {
            List<String> profiles = new ArrayList<>(profileIds);

            if (additionalProfiles != null) {
                profiles.addAll(Arrays.asList(additionalProfiles.split(",")));
            }

            descriptor.setActivateProfiles(profiles);
        }

        descriptor.setReleaseStrategyId(releaseStrategyId);

        return descriptor;
    }