@Component(role=MavenReportExecutor.class) public class DefaultMavenReportExecutor extends java.lang.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:
PluginVersionResolver to get a fallback version (display a warning as it's not a recommended use).
Following steps are done:
PluginDescriptor from the MavenPluginManager (through
MavenPluginManagerHelper.getPluginDescriptor(...) to protect from core API change)ClassLoader, with the Site plugin classloader as parent for the report execution. IMPORTS. Corresponding
artifacts are excluded from the artifact resolution: doxia-site-renderer, doxia-sink-api
and maven-reporting-api.MavenPluginManager (through
MavenPluginManagerHelper.setupPluginRealm(...) to protect from core API change)MavenPluginManager.getConfiguredMojo(...)LifecycleExecutor.calculateForkedExecutions(...) if any forked execution is needed: if yes, execute the forked
execution here| Modifier and Type | Class and Description |
|---|---|
private static class |
DefaultMavenReportExecutor.GoalWithConf |
| Modifier and Type | Field and Description |
|---|---|
private static java.util.List<java.lang.String> |
EXCLUDES |
private static java.util.List<java.lang.String> |
IMPORTS |
protected org.apache.maven.lifecycle.LifecycleExecutor |
lifecycleExecutor |
private org.codehaus.plexus.logging.Logger |
logger |
protected org.apache.maven.plugin.MavenPluginManager |
mavenPluginManager |
protected MavenPluginManagerHelper |
mavenPluginManagerHelper |
protected org.apache.maven.plugin.version.PluginVersionResolver |
pluginVersionResolver |
| Constructor and Description |
|---|
DefaultMavenReportExecutor() |
| Modifier and Type | Method and Description |
|---|---|
java.util.List<MavenReportExecution> |
buildMavenReports(MavenReportExecutorRequest mavenReportExecutorRequest)
Build the
MavenReports, with associated forked executions if necessary. |
protected java.util.List<MavenReportExecution> |
buildReportPlugin(MavenReportExecutorRequest mavenReportExecutorRequest,
ReportPlugin reportPlugin) |
private boolean |
canAggregate(org.apache.maven.project.MavenProject project) |
private org.codehaus.plexus.util.xml.Xpp3Dom |
convert(org.codehaus.plexus.configuration.PlexusConfiguration config) |
private org.apache.maven.model.Plugin |
find(ReportPlugin reportPlugin,
java.util.List<org.apache.maven.model.Plugin> plugins)
Search similar (same groupId and artifactId) plugin as a given report plugin.
|
private org.apache.maven.reporting.MavenReport |
getConfiguredMavenReport(org.apache.maven.plugin.MojoExecution mojoExecution,
org.apache.maven.plugin.descriptor.PluginDescriptor pluginDescriptor,
MavenReportExecutorRequest mavenReportExecutorRequest) |
private org.codehaus.plexus.logging.Logger |
getLog() |
private boolean |
isMavenReport(org.apache.maven.plugin.MojoExecution mojoExecution,
org.apache.maven.plugin.descriptor.PluginDescriptor pluginDescriptor) |
private org.codehaus.plexus.util.xml.Xpp3Dom |
mergeConfiguration(org.codehaus.plexus.configuration.PlexusConfiguration mojoConf,
org.codehaus.plexus.util.xml.Xpp3Dom pluginMgmtConfig,
org.codehaus.plexus.configuration.PlexusConfiguration pluginConf,
org.codehaus.plexus.configuration.PlexusConfiguration reportSetConf,
java.util.Set<java.lang.String> parameters)
Merge plugin configuration and reportset configuration to mojo configuration to get effective
mojo configuration.
|
private void |
mergePluginToReportPlugin(MavenReportExecutorRequest mavenReportExecutorRequest,
org.apache.maven.model.Plugin buildPlugin,
ReportPlugin reportPlugin)
TODO other stuff to merge ?
|
private boolean |
prepareGoals(ReportPlugin reportPlugin,
org.apache.maven.plugin.descriptor.PluginDescriptor pluginDescriptor,
java.util.List<DefaultMavenReportExecutor.GoalWithConf> goalsWithConfiguration) |
private MavenReportExecution |
prepareReportExecution(MavenReportExecutorRequest mavenReportExecutorRequest,
DefaultMavenReportExecutor.GoalWithConf report,
boolean hasUserDefinedReports) |
protected java.lang.String |
resolvePluginVersion(ReportPlugin reportPlugin,
MavenReportExecutorRequest mavenReportExecutorRequest)
Resolve report plugin version.
|
@Requirement private org.codehaus.plexus.logging.Logger logger
@Requirement protected org.apache.maven.plugin.MavenPluginManager mavenPluginManager
@Requirement protected MavenPluginManagerHelper mavenPluginManagerHelper
@Requirement protected org.apache.maven.lifecycle.LifecycleExecutor lifecycleExecutor
@Requirement protected org.apache.maven.plugin.version.PluginVersionResolver pluginVersionResolver
private static final java.util.List<java.lang.String> IMPORTS
private static final java.util.List<java.lang.String> EXCLUDES
public java.util.List<MavenReportExecution> buildMavenReports(MavenReportExecutorRequest mavenReportExecutorRequest) throws org.apache.maven.plugin.MojoExecutionException
MavenReportExecutorMavenReports, with associated forked executions if necessary.buildMavenReports in interface MavenReportExecutororg.apache.maven.plugin.MojoExecutionExceptionprotected java.util.List<MavenReportExecution> buildReportPlugin(MavenReportExecutorRequest mavenReportExecutorRequest, ReportPlugin reportPlugin) throws java.lang.Exception
java.lang.Exceptionprivate boolean prepareGoals(ReportPlugin reportPlugin, org.apache.maven.plugin.descriptor.PluginDescriptor pluginDescriptor, java.util.List<DefaultMavenReportExecutor.GoalWithConf> goalsWithConfiguration)
private MavenReportExecution prepareReportExecution(MavenReportExecutorRequest mavenReportExecutorRequest, DefaultMavenReportExecutor.GoalWithConf report, boolean hasUserDefinedReports) throws java.lang.Exception
java.lang.Exceptionprivate boolean canAggregate(org.apache.maven.project.MavenProject project)
private org.apache.maven.reporting.MavenReport getConfiguredMavenReport(org.apache.maven.plugin.MojoExecution mojoExecution,
org.apache.maven.plugin.descriptor.PluginDescriptor pluginDescriptor,
MavenReportExecutorRequest mavenReportExecutorRequest)
throws org.apache.maven.plugin.PluginContainerException,
org.apache.maven.plugin.PluginConfigurationException
org.apache.maven.plugin.PluginContainerExceptionorg.apache.maven.plugin.PluginConfigurationExceptionprivate boolean isMavenReport(org.apache.maven.plugin.MojoExecution mojoExecution,
org.apache.maven.plugin.descriptor.PluginDescriptor pluginDescriptor)
private org.codehaus.plexus.util.xml.Xpp3Dom mergeConfiguration(org.codehaus.plexus.configuration.PlexusConfiguration mojoConf,
org.codehaus.plexus.util.xml.Xpp3Dom pluginMgmtConfig,
org.codehaus.plexus.configuration.PlexusConfiguration pluginConf,
org.codehaus.plexus.configuration.PlexusConfiguration reportSetConf,
java.util.Set<java.lang.String> parameters)
mojoConf - configuration done at mojo descriptor levelpluginMgmtConfig - configuration done at build.pluginManagement levelpluginConf - configuration done at reporting plugin levelreportSetConf - configuration done at reportSet levelparameters - set of supported parameters: any other parameter will be removedprivate org.codehaus.plexus.util.xml.Xpp3Dom convert(org.codehaus.plexus.configuration.PlexusConfiguration config)
private org.codehaus.plexus.logging.Logger getLog()
protected java.lang.String resolvePluginVersion(ReportPlugin reportPlugin, MavenReportExecutorRequest mavenReportExecutorRequest) throws org.apache.maven.plugin.version.PluginVersionResolutionException
null
value has been found:
PluginVersionResolver to get a fallback version and display a warning as it's not a recommended
use.reportPlugin - the report plugin to resolve the versionmavenReportExecutorRequest - the current report execution contextorg.apache.maven.plugin.version.PluginVersionResolutionExceptionprivate org.apache.maven.model.Plugin find(ReportPlugin reportPlugin, java.util.List<org.apache.maven.model.Plugin> plugins)
reportPlugin - the report plugin to search for a similar pluginplugins - the candidate pluginsprivate void mergePluginToReportPlugin(MavenReportExecutorRequest mavenReportExecutorRequest, org.apache.maven.model.Plugin buildPlugin, ReportPlugin reportPlugin)
this method will "merge" some part of the plugin declaration existing in the build section to the fake plugin build for report execution:
mavenReportExecutorRequest - buildPlugin - reportPlugin -