Package org.apache.maven.reporting
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 toabstract executeReport( Locale )
from:- Mojo's
execute()
method, see maven-plugin-api - MavenMultiPageReport's
generate( Sink, SinkFactory, Locale )
, see maven-reporting-api
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
locale
The locale to use when the report generation is invoked directly as a standalone Mojo.protected org.apache.maven.plugin.MojoExecution
mojoExecution
The mojo executionprotected java.io.File
outputDirectory
The shared output directory for the report.protected java.lang.String
outputFormat
The report output format: null by default, to represent a site, but can be configured to a Doxia Sink id.protected java.lang.String
outputTimestamp
Timestamp for reproducible output archive entries, either formatted as ISO 8601yyyy-MM-dd'T'HH:mm:ssXXX
or as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH).protected org.apache.maven.project.MavenProject
project
The Maven Project.protected java.util.List<org.apache.maven.project.MavenProject>
reactorProjects
The reactor projects.protected java.util.List<org.eclipse.aether.repository.RemoteRepository>
remoteProjectRepositories
Remote project repositories used for the project.protected org.eclipse.aether.RepositorySystemSession
repoSession
The repository system session.protected java.io.File
siteDirectory
Directory containing thesite.xml
file.protected org.apache.maven.doxia.siterenderer.Renderer
siteRenderer
Doxia Site Renderer component.protected org.apache.maven.doxia.tools.SiteTool
siteTool
SiteTool.
-
Constructor Summary
Constructors Constructor Description AbstractMavenReport()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description boolean
canGenerateReport()
protected void
closeReport()
Actions when closing the report.protected java.lang.String
constructXrefLocation(java.io.File location, boolean test)
Contructs the (Test) Source XRef location relative to thegetReportOutputDirectory()
withgetXrefLocation(File, boolean)
.void
execute()
This method is called when the report generation is invoked directly as a standalone Mojo.protected abstract void
executeReport(java.util.Locale locale)
Execute the generation of the report.void
generate(org.apache.maven.doxia.sink.Sink sink, java.util.Locale locale)
Deprecated.usegenerate(Sink, SinkFactory, Locale)
instead.void
generate(org.apache.maven.doxia.sink.Sink sink, org.apache.maven.doxia.sink.SinkFactory sinkFactory, java.util.Locale locale)
This method is called when the report generation is invoked by maven-site-plugin.java.lang.String
getCategoryName()
protected java.lang.String
getInputEncoding()
Gets the input files encoding.protected java.util.Locale
getLocale()
Gets the localeprotected java.lang.String
getOutputDirectory()
protected java.lang.String
getOutputEncoding()
Gets the effective reporting output files encoding.protected org.apache.maven.project.MavenProject
getProject()
java.io.File
getReportOutputDirectory()
org.apache.maven.doxia.sink.Sink
getSink()
org.apache.maven.doxia.sink.SinkFactory
getSinkFactory()
protected org.apache.maven.doxia.siterenderer.Renderer
getSiteRenderer()
protected java.io.File
getXrefLocation(java.io.File location, boolean test)
Returns the (Test) Source XRef location as passthrough if provided, otherwise returns the default value.boolean
isExternalReport()
void
setReportOutputDirectory(java.io.File reportOutputDirectory)
-
Methods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContext
-
-
-
-
Field Detail
-
outputDirectory
@Parameter(defaultValue="${project.build.directory}/reports", required=true) protected java.io.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 java.util.List<org.apache.maven.project.MavenProject> reactorProjects
The reactor projects.
-
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 java.util.List<org.eclipse.aether.repository.RemoteRepository> remoteProjectRepositories
Remote project repositories used for the project.
-
siteDirectory
@Parameter(defaultValue="${basedir}/src/site") protected java.io.File siteDirectory
Directory containing thesite.xml
file.
-
locale
@Parameter(defaultValue="default") protected java.lang.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 java.lang.String outputTimestamp
Timestamp for reproducible output archive entries, either formatted as ISO 8601yyyy-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.
-
outputFormat
@Parameter(property="output.format") protected java.lang.String outputFormat
The report output format: null by default, to represent a site, but can be configured to a Doxia Sink id.
-
-
Method Detail
-
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 markedfinal
as it is not expected to be overridden:maven-reporting-impl
provides all necessary plumbing.- Specified by:
execute
in interfaceorg.apache.maven.plugin.Mojo
- Throws:
org.apache.maven.plugin.MojoExecutionException
- if an error occurs when generating the report- See Also:
Mojo.execute()
-
generate
@Deprecated public void generate(org.apache.maven.doxia.sink.Sink sink, java.util.Locale locale) throws org.apache.maven.reporting.MavenReportException
Deprecated.usegenerate(Sink, SinkFactory, Locale)
instead.Generate a report.- Specified by:
generate
in interfaceorg.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, java.util.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 interfaceorg.apache.maven.reporting.MavenMultiPageReport
- Parameters:
sink
-sinkFactory
-locale
-- Throws:
org.apache.maven.reporting.MavenReportException
-
getCategoryName
public java.lang.String getCategoryName()
- Specified by:
getCategoryName
in interfaceorg.apache.maven.reporting.MavenReport
- Returns:
- CATEGORY_PROJECT_REPORTS
-
getReportOutputDirectory
public java.io.File getReportOutputDirectory()
- Specified by:
getReportOutputDirectory
in interfaceorg.apache.maven.reporting.MavenReport
-
setReportOutputDirectory
public void setReportOutputDirectory(java.io.File reportOutputDirectory)
- Specified by:
setReportOutputDirectory
in interfaceorg.apache.maven.reporting.MavenReport
-
getOutputDirectory
protected java.lang.String getOutputDirectory()
-
getProject
protected org.apache.maven.project.MavenProject getProject()
-
getSiteRenderer
protected org.apache.maven.doxia.siterenderer.Renderer getSiteRenderer()
-
getInputEncoding
protected java.lang.String getInputEncoding()
Gets the input files encoding.- Returns:
- The input files encoding, never
null
.
-
getOutputEncoding
protected java.lang.String getOutputEncoding()
Gets the effective reporting output files encoding.- Returns:
- The effective reporting output file encoding, never
null
.
-
getLocale
protected java.util.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 interfaceorg.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 interfaceorg.apache.maven.reporting.MavenReport
- Throws:
org.apache.maven.reporting.MavenReportException
-
executeReport
protected abstract void executeReport(java.util.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 benull
.- Throws:
org.apache.maven.reporting.MavenReportException
- if any
-
getXrefLocation
protected java.io.File getXrefLocation(java.io.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 anytest
- whether it is test source- Returns:
- the actual (Test) Source XRef location
-
constructXrefLocation
protected java.lang.String constructXrefLocation(java.io.File location, boolean test)
Contructs the (Test) Source XRef location relative to thegetReportOutputDirectory()
withgetXrefLocation(File, boolean)
.- Parameters:
location
- the XRef location provided via plugin parameter, if anytest
- whether it is test source- Returns:
- the constructed (Test) Source XRef location
-
-