Class DefaultMavenReportExecutor
java.lang.Object
org.apache.maven.reporting.exec.DefaultMavenReportExecutor
- All Implemented Interfaces:
MavenReportExecutor
@Singleton
@Named
public class DefaultMavenReportExecutor
extends Object
implements MavenReportExecutor
This component will build some MavenReportExecution from MavenReportExecutorRequest. If a
MavenReport needs to fork a lifecycle, this fork is executed here. It will ask the core to get some
informations in order to correctly setup MavenReport.
Note if no version is defined in the report plugin, the version will be searched with
resolvePluginVersion(...) method:
- use the one defined in the reportPlugin configuration,
- search similar (same groupId and artifactId) plugin in the build/plugins section of the pom,
- search similar (same groupId and artifactId) plugin in the build/pluginManagement section of the pom,
- ask
PluginVersionResolverto get a fallback version (display a warning as it's not a recommended use).
Following steps are done:
- get
PluginDescriptorfrom theMavenPluginManager(throughMavenPluginManagerHelper.getPluginDescriptor(...)to protect from core API change) - setup a
ClassLoader, with the Site plugin classloader as parent for the report execution.
Notice that some classes are imported from the current Site plugin ClassRealm: seeIMPORTS. Corresponding artifacts are excluded from the artifact resolution:doxia-site-renderer,doxia-sink-apiandmaven-reporting-api.
Work is done usingMavenPluginManager(throughMavenPluginManagerHelper.setupPluginRealm(...)to protect from core API change) - setup the mojo using
MavenPluginManager.getConfiguredMojo(...) - verify with
LifecycleExecutor.calculateForkedExecutions(...)if any forked execution is needed: if yes, execute the forked execution here
- Author:
- Olivier Lamy
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultMavenReportExecutor(org.apache.maven.plugin.MavenPluginManager mavenPluginManager, MavenPluginManagerHelper mavenPluginManagerHelper, org.apache.maven.lifecycle.LifecycleExecutor lifecycleExecutor, org.apache.maven.plugin.version.PluginVersionResolver pluginVersionResolver) -
Method Summary
Modifier and TypeMethodDescriptionbuildMavenReports(MavenReportExecutorRequest mavenReportExecutorRequest) Build theMavenReports, with associated forked executions if necessary.protected List<MavenReportExecution> buildReportPlugin(MavenReportExecutorRequest mavenReportExecutorRequest, org.apache.maven.reporting.exec.ReportPlugin reportPlugin) protected StringresolvePluginVersion(org.apache.maven.reporting.exec.ReportPlugin reportPlugin, MavenReportExecutorRequest mavenReportExecutorRequest) Resolve report plugin version.
-
Constructor Details
-
DefaultMavenReportExecutor
@Inject public DefaultMavenReportExecutor(org.apache.maven.plugin.MavenPluginManager mavenPluginManager, MavenPluginManagerHelper mavenPluginManagerHelper, org.apache.maven.lifecycle.LifecycleExecutor lifecycleExecutor, org.apache.maven.plugin.version.PluginVersionResolver pluginVersionResolver)
-
-
Method Details
-
buildMavenReports
public List<MavenReportExecution> buildMavenReports(MavenReportExecutorRequest mavenReportExecutorRequest) throws org.apache.maven.plugin.MojoExecutionException Description copied from interface:MavenReportExecutorBuild theMavenReports, with associated forked executions if necessary.- Specified by:
buildMavenReportsin interfaceMavenReportExecutor- Parameters:
mavenReportExecutorRequest- the request- Returns:
- a list or prepared Maven report executions
- Throws:
org.apache.maven.plugin.MojoExecutionException- on report execution issue
-
buildReportPlugin
protected List<MavenReportExecution> buildReportPlugin(MavenReportExecutorRequest mavenReportExecutorRequest, org.apache.maven.reporting.exec.ReportPlugin reportPlugin) throws Exception - Throws:
Exception
-
resolvePluginVersion
protected String resolvePluginVersion(org.apache.maven.reporting.exec.ReportPlugin reportPlugin, MavenReportExecutorRequest mavenReportExecutorRequest) throws org.apache.maven.plugin.version.PluginVersionResolutionException Resolve report plugin version. Steps to find a plugin version stop after each step if a nonnullvalue has been found:- use the one defined in the reportPlugin configuration,
- search similar (same groupId and artifactId) mojo in the build/plugins section of the pom,
- search similar (same groupId and artifactId) mojo in the build/pluginManagement section of the pom,
- ask
PluginVersionResolverto get a fallback version and display a warning as it's not a recommended use.
- Parameters:
reportPlugin- the report plugin to resolve the versionmavenReportExecutorRequest- the current report execution context- Returns:
- the report plugin version
- Throws:
org.apache.maven.plugin.version.PluginVersionResolutionException- on plugin version resolution issue
-