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
- Author:
- Emmanuel Venisse
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected StringThe locale to use when the report generation is invoked directly as a standalone Mojo.protected org.apache.maven.plugin.MojoExecutionThe mojo executionprotected FileThe shared output directory for the report.protected StringThe report output format: null by default, to represent a site, but can be configured to a Doxia Sink id.protected StringTimestamp for reproducible output archive entries, either formatted as ISO 8601yyyy-MM-dd'T'HH:mm:ssXXXor as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH).protected org.apache.maven.project.MavenProjectThe Maven Project.protected List<org.apache.maven.project.MavenProject> The reactor projects.protected List<org.eclipse.aether.repository.RemoteRepository> Remote project repositories used for the project.protected org.eclipse.aether.RepositorySystemSessionThe repository system session.protected FileDirectory containing thesite.xmlfile.protected org.apache.maven.doxia.siterenderer.RendererDoxia Site Renderer component.protected org.apache.maven.doxia.tools.SiteToolSiteTool.Fields inherited from interface org.apache.maven.reporting.MavenReport
CATEGORY_PROJECT_INFORMATION, CATEGORY_PROJECT_REPORTS, ROLEFields inherited from interface org.apache.maven.plugin.Mojo
ROLE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanprotected voidActions when closing the report.protected StringconstructXrefLocation(File location, boolean test) Contructs the (Test) Source XRef location relative to thegetReportOutputDirectory()withgetXrefLocation(File, boolean).final voidexecute()This method is called when the report generation is invoked directly as a standalone Mojo.protected abstract voidexecuteReport(Locale locale) Execute the generation of the report.voidDeprecated.voidgenerate(org.apache.maven.doxia.sink.Sink sink, org.apache.maven.doxia.sink.SinkFactory sinkFactory, Locale locale) This method is called when the report generation is invoked by maven-site-plugin.protected StringGets the input files encoding.protected LocaleGets the localeprotected Stringprotected StringGets the effective reporting output files encoding.protected org.apache.maven.project.MavenProjectorg.apache.maven.doxia.sink.SinkgetSink()org.apache.maven.doxia.sink.SinkFactoryprotected org.apache.maven.doxia.siterenderer.Rendererprotected FilegetXrefLocation(File location, boolean test) Returns the (Test) Source XRef location as passthrough if provided, otherwise returns the default value.booleanvoidsetReportOutputDirectory(File reportOutputDirectory) Methods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContextMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.maven.reporting.MavenReport
getDescription, getName, getOutputName, getOutputPath
-
Field Details
-
outputDirectory
@Parameter(defaultValue="${project.build.directory}/reports", required=true) protected File outputDirectoryThe 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 projectThe Maven Project. -
mojoExecution
@Parameter(defaultValue="${mojoExecution}", readonly=true, required=true) protected org.apache.maven.plugin.MojoExecution mojoExecutionThe mojo execution -
reactorProjects
@Parameter(defaultValue="${reactorProjects}", required=true, readonly=true) protected List<org.apache.maven.project.MavenProject> reactorProjectsThe reactor projects. -
repoSession
@Parameter(defaultValue="${repositorySystemSession}", readonly=true, required=true) protected org.eclipse.aether.RepositorySystemSession repoSessionThe repository system session. -
remoteProjectRepositories
@Parameter(defaultValue="${project.remoteProjectRepositories}", readonly=true, required=true) protected List<org.eclipse.aether.repository.RemoteRepository> remoteProjectRepositoriesRemote project repositories used for the project. -
siteDirectory
Directory containing thesite.xmlfile. -
locale
The locale to use when the report generation is invoked directly as a standalone Mojo.- See Also:
-
outputTimestamp
Timestamp for reproducible output archive entries, either formatted as ISO 8601yyyy-MM-dd'T'HH:mm:ssXXXor as an int representing seconds since the epoch (like SOURCE_DATE_EPOCH). -
siteTool
@Component protected org.apache.maven.doxia.tools.SiteTool siteToolSiteTool. -
siteRenderer
@Component protected org.apache.maven.doxia.siterenderer.Renderer siteRendererDoxia Site Renderer component. -
outputFormat
The report output format: null by default, to represent a site, but can be configured to a Doxia Sink id.
-
-
Constructor Details
-
AbstractMavenReport
public AbstractMavenReport()
-
-
Method Details
-
execute
public final void execute() throws org.apache.maven.plugin.MojoExecutionExceptionThis method is called when the report generation is invoked directly as a standalone Mojo. This implementation is now markedfinalas it is not expected to be overridden:maven-reporting-implprovides all necessary plumbing.- Specified by:
executein interfaceorg.apache.maven.plugin.Mojo- Throws:
org.apache.maven.plugin.MojoExecutionException- if an error occurs when generating the report- See Also:
-
generate
@Deprecated public void generate(org.apache.maven.doxia.sink.Sink sink, Locale locale) throws org.apache.maven.reporting.MavenReportException Deprecated.usegenerate(Sink, SinkFactory, Locale)instead.Generate a report.- Specified by:
generatein 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, Locale locale) throws org.apache.maven.reporting.MavenReportException This method is called when the report generation is invoked by maven-site-plugin.- Specified by:
generatein interfaceorg.apache.maven.reporting.MavenMultiPageReport- Parameters:
sink-sinkFactory-locale-- Throws:
org.apache.maven.reporting.MavenReportException
-
getCategoryName
- Specified by:
getCategoryNamein interfaceorg.apache.maven.reporting.MavenReport- Returns:
- CATEGORY_PROJECT_REPORTS
-
getReportOutputDirectory
- Specified by:
getReportOutputDirectoryin interfaceorg.apache.maven.reporting.MavenReport
-
setReportOutputDirectory
- Specified by:
setReportOutputDirectoryin interfaceorg.apache.maven.reporting.MavenReport
-
getOutputDirectory
-
getProject
protected org.apache.maven.project.MavenProject getProject() -
getSiteRenderer
protected org.apache.maven.doxia.siterenderer.Renderer getSiteRenderer() -
getInputEncoding
Gets the input files encoding.- Returns:
- The input files encoding, never
null.
-
getOutputEncoding
Gets the effective reporting output files encoding.- Returns:
- The effective reporting output file encoding, never
null.
-
getLocale
-
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:
isExternalReportin interfaceorg.apache.maven.reporting.MavenReport- Returns:
falseby default.- See Also:
-
canGenerateReport
public boolean canGenerateReport() throws org.apache.maven.reporting.MavenReportException- Specified by:
canGenerateReportin interfaceorg.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 benull.- Throws:
org.apache.maven.reporting.MavenReportException- if any
-
getXrefLocation
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
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
-
generate(Sink, SinkFactory, Locale)instead.