Class AbstractMavenReport

java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.apache.maven.reporting.AbstractMavenReport
All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo, org.apache.maven.reporting.MavenMultiPageReport, org.apache.maven.reporting.MavenReport

public abstract class AbstractMavenReport extends org.apache.maven.plugin.AbstractMojo implements org.apache.maven.reporting.MavenMultiPageReport
The basis for a Maven report which can be generated both as part of a site generation or as a direct standalone goal invocation. Both invocations are delegated to abstract executeReport( Locale ) from:
  • Mojo's execute() method, see maven-plugin-api
  • MavenMultiPageReport's generate( Sink, SinkFactory, Locale ), see maven-reporting-api
Since:
2.0
See Also:
  • Field Details

    • outputDirectory

      @Parameter(defaultValue="${project.build.directory}/reports", required=true) protected File outputDirectory
      The shared output directory for the report. Note that this parameter is only evaluated if the goal is run directly from the command line. If the goal is run indirectly as part of a site generation, the shared output directory configured in the Maven Site Plugin is used instead.

      A plugin may use any subdirectory structure (either using a hard-coded name or, ideally, an additional user-defined mojo parameter with a default value) to generate multi-page reports or external reports with the main output file (entry point) denoted by MavenReport.getOutputName().

    • project

      @Parameter(defaultValue="${project}", readonly=true, required=true) protected org.apache.maven.project.MavenProject project
      The Maven Project.
    • mojoExecution

      @Parameter(defaultValue="${mojoExecution}", readonly=true, required=true) protected org.apache.maven.plugin.MojoExecution mojoExecution
      The mojo execution
    • reactorProjects

      @Parameter(defaultValue="${reactorProjects}", required=true, readonly=true) protected List<org.apache.maven.project.MavenProject> reactorProjects
      The reactor projects.
    • inputEncoding

      @Parameter(property="encoding", defaultValue="${project.build.sourceEncoding}", readonly=true) private String inputEncoding
      Specifies the input encoding.
    • outputEncoding

      @Parameter(property="outputEncoding", defaultValue="${project.reporting.outputEncoding}", readonly=true) private String outputEncoding
      Specifies the output encoding.
    • repoSession

      @Parameter(defaultValue="${repositorySystemSession}", readonly=true, required=true) protected org.eclipse.aether.RepositorySystemSession repoSession
      The repository system session.
    • remoteProjectRepositories

      @Parameter(defaultValue="${project.remoteProjectRepositories}", readonly=true, required=true) protected List<org.eclipse.aether.repository.RemoteRepository> remoteProjectRepositories
      Remote project repositories used for the project.
    • siteDirectory

      @Parameter(defaultValue="${basedir}/src/site") protected File siteDirectory
      Directory containing the site.xml file.
    • locale

      @Parameter(defaultValue="default") protected String locale
      The locale to use when the report generation is invoked directly as a standalone Mojo.
      See Also:
      • SiteTool.DEFAULT_LOCALE
      • SiteTool.getSiteLocales(String)
    • outputTimestamp

      @Parameter(defaultValue="${project.build.outputTimestamp}") protected String outputTimestamp
      Timestamp for reproducible output archive entries, either formatted as ISO 8601 yyyy-MM-dd'T'HH:mm:ssXXX or as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH).
    • siteTool

      @Component protected org.apache.maven.doxia.tools.SiteTool siteTool
      SiteTool.
    • siteRenderer

      @Component protected org.apache.maven.doxia.siterenderer.Renderer siteRenderer
      Doxia Site Renderer component.
    • sink

      private org.apache.maven.doxia.sink.Sink sink
      The current sink to use
    • sinkFactory

      private org.apache.maven.doxia.sink.SinkFactory sinkFactory
      The sink factory to use
    • reportOutputDirectory

      private File reportOutputDirectory
      The current shared report output directory to use
    • outputFormat

      @Parameter(property="output.format") protected String outputFormat
      The report output format: null by default, to represent a site, but can be configured to a Doxia Sink id.
    • container

      @Component private org.codehaus.plexus.PlexusContainer container
  • Constructor Details

    • AbstractMavenReport

      public AbstractMavenReport()
  • Method Details

    • execute

      public final void execute() throws org.apache.maven.plugin.MojoExecutionException
      This method is called when the report generation is invoked directly as a standalone Mojo. This implementation is now marked final as it is not expected to be overridden: maven-reporting-impl provides all necessary plumbing.
      Specified by:
      execute in interface org.apache.maven.plugin.Mojo
      Throws:
      org.apache.maven.plugin.MojoExecutionException - if an error occurs when generating the report
      See Also:
      • Mojo.execute()
    • reportToMarkup

      private void reportToMarkup() throws org.apache.maven.plugin.MojoExecutionException
      Throws:
      org.apache.maven.plugin.MojoExecutionException
    • reportToSite

      private void reportToSite() throws org.apache.maven.plugin.MojoExecutionException
      Throws:
      org.apache.maven.plugin.MojoExecutionException
    • createSiteRenderingContext

      private org.apache.maven.doxia.siterenderer.SiteRenderingContext createSiteRenderingContext(Locale locale) throws org.apache.maven.reporting.MavenReportException, IOException, org.apache.maven.doxia.tools.SiteToolException
      Throws:
      org.apache.maven.reporting.MavenReportException
      IOException
      org.apache.maven.doxia.tools.SiteToolException
    • generate

      @Deprecated public void generate(org.apache.maven.doxia.sink.Sink sink, Locale locale) throws org.apache.maven.reporting.MavenReportException
      Deprecated.
      Generate a report.
      Specified by:
      generate in interface org.apache.maven.reporting.MavenReport
      Parameters:
      sink - the sink to use for the generation.
      locale - the wanted locale to generate the report, could be null.
      Throws:
      org.apache.maven.reporting.MavenReportException - if any
    • generate

      public void generate(org.apache.maven.doxia.sink.Sink sink, org.apache.maven.doxia.sink.SinkFactory sinkFactory, Locale locale) throws org.apache.maven.reporting.MavenReportException
      This method is called when the report generation is invoked by maven-site-plugin.
      Specified by:
      generate in interface org.apache.maven.reporting.MavenMultiPageReport
      Parameters:
      sink -
      sinkFactory -
      locale -
      Throws:
      org.apache.maven.reporting.MavenReportException
    • getCategoryName

      public String getCategoryName()
      Specified by:
      getCategoryName in interface org.apache.maven.reporting.MavenReport
      Returns:
      CATEGORY_PROJECT_REPORTS
    • getReportOutputDirectory

      public File getReportOutputDirectory()
      Specified by:
      getReportOutputDirectory in interface org.apache.maven.reporting.MavenReport
    • setReportOutputDirectory

      public void setReportOutputDirectory(File reportOutputDirectory)
      Specified by:
      setReportOutputDirectory in interface org.apache.maven.reporting.MavenReport
    • getOutputDirectory

      protected String getOutputDirectory()
    • getProject

      protected org.apache.maven.project.MavenProject getProject()
    • getSiteRenderer

      protected org.apache.maven.doxia.siterenderer.Renderer getSiteRenderer()
    • getInputEncoding

      protected String getInputEncoding()
      Gets the input files encoding.
      Returns:
      The input files encoding, never null.
    • getOutputEncoding

      protected String getOutputEncoding()
      Gets the effective reporting output files encoding.
      Returns:
      The effective reporting output file encoding, never null.
    • getLocale

      protected Locale getLocale()
      Gets the locale
      Returns:
      the locale for this standalone report
    • closeReport

      protected void closeReport()
      Actions when closing the report.
    • getSink

      public org.apache.maven.doxia.sink.Sink getSink()
      Returns:
      the sink used
    • getSinkFactory

      public org.apache.maven.doxia.sink.SinkFactory getSinkFactory()
      Returns:
      the sink factory used
    • isExternalReport

      public boolean isExternalReport()
      Specified by:
      isExternalReport in interface org.apache.maven.reporting.MavenReport
      Returns:
      false by default.
      See Also:
      • MavenReport.isExternalReport()
    • canGenerateReport

      public boolean canGenerateReport() throws org.apache.maven.reporting.MavenReportException
      Specified by:
      canGenerateReport in interface org.apache.maven.reporting.MavenReport
      Throws:
      org.apache.maven.reporting.MavenReportException
    • executeReport

      protected abstract void executeReport(Locale locale) throws org.apache.maven.reporting.MavenReportException
      Execute the generation of the report.
      Parameters:
      locale - the wanted locale to return the report's description, could be null.
      Throws:
      org.apache.maven.reporting.MavenReportException - if any
    • getXrefLocation

      protected File getXrefLocation(File location, boolean test)
      Returns the (Test) Source XRef location as passthrough if provided, otherwise returns the default value.
      Parameters:
      location - the XRef location provided via plugin parameter, if any
      test - whether it is test source
      Returns:
      the actual (Test) Source XRef location
    • constructXrefLocation

      protected String constructXrefLocation(File location, boolean test)
      Contructs the (Test) Source XRef location relative to the getReportOutputDirectory() with getXrefLocation(File, boolean).
      Parameters:
      location - the XRef location provided via plugin parameter, if any
      test - whether it is test source
      Returns:
      the constructed (Test) Source XRef location