Classes to prepare report plugins execution with Maven 3, through MavenReportExecutor (implementation).
Contrary to Maven 2.x:
Since 1.4 (used by Maven Site Plugin 3.7), the request can (and should) be populated from pom's <reporting.plugins> section, injected in Mojo parameter as ${project.reporting.plugins} default value:
@Parameter( defaultValue = "${project.reporting.plugins}", readonly = true ) private org.apache.maven.model.ReportPlugin[] reportingPlugins;
This section is kept to explain what happened in previous releases of the component, but this approach has been abandonned so far after discovering major limitations: see Maven Site Plugin 3.9.0 documentation for more details.
Report plugins can be configured in <configuration> element of maven-site-plugin or any other report building plugin with following XML model corresponding to plugin's List<ReportPlugin> parameter:
<reportPlugins> <reportPlugin> <groupId/> <artifactId/> <version/> <configuration/> <reports/> <reportSets> <reportSet> <id/> <configuration/> <reports/> </reportSet> </reportSets> </reportPlugin> </reportPlugins>
Notice this is the model from plugins in <reporting> section of POM:
Maven 3 core makes an automatic transformation of <reporting> POM section (which supports configuration inheritance) to maven-site-plugin's reportPlugins configuration through the ReportingConverter component.
But Maven 3 does not do the same job for any other plugin wanting to use reports, like maven-pdf-plugin for example: this is one of the key limitations that made Maven team drop this approach.