Classes to prepare report plugins execution with Maven 3, through MavenReportExecutor (implementation).
Since 1.4, the request can (and should) be populated from pom's <reporting> 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;
Contrary to Maven 2.x, report <version> explicit definition is optional: if no version is specified for a report plugin, version is determined by
Since maven-reporting-exec 1.2 (which is used by maven-site-plugin 3.4), plugin configuration in build/pluginManagement is also injected into reports.
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 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.