Apache Maven Reporting Executor

Classes to prepare report plugins execution with Maven 3, through MavenReportExecutor (implementation): 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>
  <plugin>
    <groupId/>
    <artifactId/>
    <version/>
    <configuration/>
    <reports/>
    <reportSets>
      <reportSet>
        <id/>
        <configuration/>
        <reports/>
      </reportSet>
    </reportSets>
  </plugin>
</reportPlugins>

Notice this is the model from plugins in <reporting> section of POM:

  • without <inherited> element: reporting plugins configuration inheritance is not supported at this level (see MSITE-484),
  • with additional <reports> list outside <reportSet> that simplifies reports configuration in usual cases,
  • with optional <version>: if no version is specified for a report plugin, version is determined by
    1. searching for the plugin in the build/plugins section of the pom,
    2. searching for the plugin in the build/pluginManagement section of the pom,
    3. asking PluginVersionResolver to get a fallback version and display a warning as it's not a recommended use.

Since maven-reporting-exec 1.2 (which will be used by maven-site-plugin 3.4), plugin configuration in build/pluginManagement is injected into reports.

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.