Package org.apache.maven.reporting

The API between the Maven Site Plugin and the reports it renders.

A report implements MavenReport. Report plugins usually extend AbstractMavenReport from Maven Reporting Implementation, which also lets the report run as a standalone goal. For each configured report, the Maven Site Plugin:

  1. calls setReportOutputDirectory with the site output directory;
  2. skips the report if canGenerateReport returns false;
  3. calls generate with a sink for the main page and a factory for any sub-pages;
  4. decorates the pages with the site skin, unless isExternalReport returns true.

Every report plugin implements this API, so a method added to MavenReport must be a default method, and two default methods must never call each other.