[
http://jira.codehaus.org/browse/MSITE-504?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=235656#action_235656
]
Marvin Froeder commented on MSITE-504:
--------------------------------------
I came up with a quick dirty patch, not sure if that is the best way to deal
with the problem but it did solve my problems here.
{code}
Index:
src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java
===================================================================
--- src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java
(revision 998149)
+++ src/main/java/org/apache/maven/plugins/site/DefaultMavenReportExecutor.java
(working copy)
@@ -48,8 +48,10 @@
import org.apache.maven.project.MavenProject;
import org.apache.maven.reporting.MavenReport;
import org.codehaus.classworlds.ClassRealm;
+import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
+import
org.codehaus.plexus.component.repository.exception.ComponentLookupException;
import org.codehaus.plexus.configuration.PlexusConfiguration;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.util.StringUtils;
@@ -103,6 +105,9 @@
implements MavenReportExecutor
{
@Requirement
+ private PlexusContainer container;
+
+ @Requirement
private Logger logger;
@Requirement
@@ -291,6 +296,37 @@
{
try
{
+ Mojo unconfiguredMojo;
+
+ org.codehaus.plexus.classworlds.realm.ClassRealm pluginRealm =
pluginDescriptor.getClassRealm();
+ org.codehaus.plexus.classworlds.realm.ClassRealm oldLookupRealm =
container.setLookupRealm( pluginRealm );
+
+ ClassLoader oldClassLoader =
Thread.currentThread().getContextClassLoader();
+
+ try
+ {
+ container.setLookupRealm( pluginRealm );
+ Thread.currentThread().setContextClassLoader( pluginRealm );
+ unconfiguredMojo = container.lookup( Mojo.class,
mojoExecution.getMojoDescriptor().getRoleHint() );
+ }
+ catch ( ComponentLookupException e )
+ {
+ throw new PluginContainerException(
mojoExecution.getMojoDescriptor(), pluginRealm,
+ "Unable to load the mojo '"
+ +
mojoExecution.getMojoDescriptor().getGoal()
+ + "' (or one of its
required components) from the plugin '"
+ +
pluginDescriptor.getId() + "'", e );
+ }
+ finally
+ {
+ container.setLookupRealm( oldLookupRealm );
+ Thread.currentThread().setContextClassLoader( oldClassLoader );
+ }
+
+ if(!MavenReport.class.isAssignableFrom(
unconfiguredMojo.getClass() )) {
+ return null;
+ }
+
Mojo mojo = mavenPluginManager.getConfiguredMojo( Mojo.class,
mavenReportExecutorRequest.getMavenSession(),
mojoExecution );
{code}
> Maven site fails to run due to non-report goals
> -----------------------------------------------
>
> Key: MSITE-504
> URL: http://jira.codehaus.org/browse/MSITE-504
> Project: Maven 2.x Site Plugin
> Issue Type: Bug
> Affects Versions: 3.0-beta-2
> Reporter: Marvin Froeder
> Assignee: Olivier Lamy
>
> An user just reported me a curious bug when using flexmojos and maven 3....
> {quote}
> [ERROR] Failed to execute goal
> org.apache.maven.plugins:maven-site-plugin:3.0-beta-2:site (default-cli) on
> project calculator-api: failed to get Reports: The parameters 'filesToTrust'
> for goal org.sonatype.flexmojos:flexmojos-maven-plugin:4.0-SNAPSHOT:trust are
> missing or invalid -> [Help 1]
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute
> goal org.apache.maven.plugins:maven-site-plugin:3.0-beta-2:site (default-cli)
> on project calculator-api: failed to get Reports
> at
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
> at
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:88)
> at
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:80)
> at
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:87)
> at
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
> at
> org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
> at
> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
> at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:315)
> at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152)
> at org.apache.maven.cli.MavenCli.execute(MavenCli.java:445)
> at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:168)
> at org.apache.maven.cli.MavenCli.main(MavenCli.java:132)
> at
> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
> at
> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
> at
> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
> at
> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
> Caused by: org.apache.maven.plugin.MojoExecutionException: failed to get
> Reports
> at
> org.apache.maven.plugins.site.DefaultMavenReportExecutor.buildMavenReports(DefaultMavenReportExecutor.java:264)
> at
> org.apache.maven.plugins.site.AbstractSiteRenderingMojo.getReports(AbstractSiteRenderingMojo.java:208)
> at org.apache.maven.plugins.site.SiteMojo.execute(SiteMojo.java:105)
> at
> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:107)
> at
> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
> ... 19 more
> Caused by: org.apache.maven.plugin.PluginParameterException: The parameters
> 'filesToTrust' for goal
> org.sonatype.flexmojos:flexmojos-maven-plugin:4.0-SNAPSHOT:trust are missing
> or invalid
> at
> org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:514)
> at
> org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:467)
> at
> org.apache.maven.plugins.site.DefaultMavenReportExecutor.getConfiguredMavenReport(DefaultMavenReportExecutor.java:294)
> at
> org.apache.maven.plugins.site.DefaultMavenReportExecutor.buildMavenReports(DefaultMavenReportExecutor.java:234)
> ... 23 more
> {quote}
> This goal 'trust' is NOT a Maven report and this user never invokes it, but
> seems maven-site creeps out with this goal, seems maven is trying to
> configure it and fail because 'filesToTrust' is required but not configured.
> Since the goal is neither used nor a maven-report it shouldn't affect
> maven-site at all.
> I will create an IT for this in a few minutes
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira