protected List buildReportPlugin()

in src/main/java/org/apache/maven/reporting/exec/DefaultMavenReportExecutor.java [173:229]


    protected List<MavenReportExecution> buildReportPlugin(
            MavenReportExecutorRequest mavenReportExecutorRequest, ReportPlugin reportPlugin) throws Exception {
        // step 1: prepare the plugin
        Plugin plugin = new Plugin();
        plugin.setGroupId(reportPlugin.getGroupId());
        plugin.setArtifactId(reportPlugin.getArtifactId());
        plugin.setVersion(resolvePluginVersion(reportPlugin, mavenReportExecutorRequest));
        LOGGER.info("Configuring report plugin {}:{}", plugin.getArtifactId(), plugin.getVersion());

        mergePluginToReportPlugin(mavenReportExecutorRequest, plugin, reportPlugin);

        PluginDescriptor pluginDescriptor =
                mavenPluginManagerHelper.getPluginDescriptor(plugin, mavenReportExecutorRequest.getMavenSession());

        // step 2: prepare the goals
        List<GoalWithConf> goalsWithConfiguration = new ArrayList<>();
        boolean hasUserDefinedReports = prepareGoals(reportPlugin, pluginDescriptor, goalsWithConfiguration);

        // step 3: prepare the reports
        List<MavenReportExecution> reports = new ArrayList<>(goalsWithConfiguration.size());
        for (GoalWithConf report : goalsWithConfiguration) {
            MavenReportExecution mavenReportExecution =
                    prepareReportExecution(mavenReportExecutorRequest, report, hasUserDefinedReports);

            if (mavenReportExecution != null) {
                // ok, report is ready to generate
                reports.add(mavenReportExecution);
            }
        }

        if (!reports.isEmpty()) {
            // log reports, either configured or detected
            StringBuilder buff = new StringBuilder();
            for (MavenReportExecution mre : reports) {
                if (buff.length() > 0) {
                    buff.append(", ");
                }
                buff.append(mre.getGoal());
            }
            LOGGER.info(
                    "{} {} report{} for {}:{}: {}",
                    (hasUserDefinedReports ? "Configured" : "Detected"),
                    reports.size(),
                    (reports.size() > 1 ? "s" : ""),
                    plugin.getArtifactId(),
                    plugin.getVersion(),
                    buff);
        } else if (!hasUserDefinedReports) {
            LOGGER.warn(
                    "Ignoring report plugin {}:{},"
                            + " it does not contain any report goals: should be removed from reporting configuration in POM",
                    plugin.getArtifactId(),
                    plugin.getVersion());
        }

        return reports;
    }