You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Benjamin Bentmann (JIRA)" <ji...@codehaus.org> on 2010/10/29 00:41:05 UTC
[jira] Updated: (SUREFIRE-655) massive grief by
DefaultPlexusContainer lookup which incorrectly parsed the roleHint
[ http://jira.codehaus.org/browse/SUREFIRE-655?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Benjamin Bentmann updated SUREFIRE-655:
---------------------------------------
Attachment: SUREFIRE-655.zip
The Surefire ITs run fine using M3 and this small sample project inspired by your information also doesn't exhibit the issue.
> massive grief by DefaultPlexusContainer lookup which incorrectly parsed the roleHint
> ------------------------------------------------------------------------------------
>
> Key: SUREFIRE-655
> URL: http://jira.codehaus.org/browse/SUREFIRE-655
> Project: Maven Surefire
> Issue Type: Bug
> Affects Versions: 2.5
> Environment: >mvn -version
> Apache Maven 3.0 (r1004208; 2010-10-04 13:50:56+0200)
> Java version: 1.6.0_16
> Java home: C:\Java\jdk\jre
> Default locale: en_US, platform encoding: Cp1252
> OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows"
> Reporter: Martin Gainty
> Attachments: SUREFIRE-655.zip
>
>
> originally i was using 2.5 version of maven-surefire-plugin as seen here
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-surefire-plugin</artifactId>
> <version>2.5</version>
> this caused massive grief by DefaultPlexusContainer lookup which incorrectly parsed the roleHint
> so i backed all my dependencies of maven-surefire-plugin down to v 2.4.2 to rid myself of the guice injector anomaly here is the debug error listing:
> note that the org.codehaus.plexus.DefaultPlexusContainer roleHint is incorrectly assigned org.apache.maven.plugins:maven-surefire-plugin:2.5:test
> it should be org.apache.maven.plugins:maven-surefire-plugin:2.5
> for the lookup to work
> [ERROR] 1 error
> [ERROR] role: org.apache.maven.plugin.Mojo
> [ERROR] roleHint: org.apache.maven.plugins:maven-surefire-plugin:2.5:test: Guice provision errors:
> [ERROR]
> [ERROR] 1) No implementation for org.apache.maven.artifact.resolver.ArtifactResolver was bound.
> [ERROR] while locating org.apache.maven.plugin.surefire.SurefirePlugin
> [ERROR]
> [ERROR] 1 error
> [ERROR] -> [Help 1]
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.5:test (default-test) on project maven-checkstyle-plugin: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.5:test failed: Unable to load the mojo 'test' (or one of its required components) from the plugin 'org.apache.maven.plugins:maven-surefire-plugin:2.5'
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:211)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:140)
> at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
> 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:314)
> at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:151)
> 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 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> 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.PluginExecutionException: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.5:test failed: Unable to load the mojo 'test' (or one of its required components) from the plugin 'org.apache.maven.plugins:maven-surefire-plugin:2.5'
> at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:121)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:195)
> ... 19 more
> Caused by: org.apache.maven.plugin.PluginContainerException: Unable to load the mojo 'test' (or one of its required components) from the plugin 'org.apache.maven.plugins:maven-surefire-plugin:2.5'
> at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:426)
> at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:96)
> ... 20 more
> Caused by: org.codehaus.plexus.component.repository.exception.ComponentLookupException: com.google.inject.ProvisionException: Guice provision errors:
> 1) Error injecting: org.apache.maven.plugin.surefire.SurefirePlugin
> at ClassRealm[plugin>org.apache.maven.plugins:maven-surefire-plugin:2.5, parent: ClassRealm[maven.api, parent: null]]
> while locating org.apache.maven.plugin.Mojo annotated with @com.google.inject.name.Named(value=org.apache.maven.plugins:maven-surefire-plugin:2.5:test)
> 1 error
> role: org.apache.maven.plugin.Mojo
> roleHint: org.apache.maven.plugins:maven-surefire-plugin:2.5:test
> at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:253)
> at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:241)
> at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:393)
> ... 21 more
> Caused by: com.google.inject.ProvisionException: Guice provision errors:
> 1) Error injecting: org.apache.maven.plugin.surefire.SurefirePlugin
> at ClassRealm[plugin>org.apache.maven.plugins:maven-surefire-plugin:2.5, parent: ClassRealm[maven.api, parent: null]]
> while locating org.apache.maven.plugin.Mojo annotated with @com.google.inject.name.Named(value=org.apache.maven.plugins:maven-surefire-plugin:2.5:test)
> 1 error
> at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:957)
> at com.google.inject.Scopes$1$1.get(Scopes.java:63)
> at org.sonatype.guice.bean.locators.LazyQualifiedBean.getValue(LazyQualifiedBean.java:66)
> at org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:54)
> at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:249)
> ... 23 more
> Caused by: com.google.inject.ProvisionException: Guice provision errors:
> 1) No implementation for org.apache.maven.artifact.resolver.ArtifactResolver was bound.
> while locating org.apache.maven.plugin.surefire.SurefirePlugin
> 1 error
> at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:957)
> at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:983)
> at org.sonatype.guice.bean.reflect.AbstractDeferredClass.get(AbstractDeferredClass.java:48)
> at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
> at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:948)
> at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:994)
> at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:944)
> ... 27 more
> /* the correct implementation is as follows */
> <build>
> <plugins>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-surefire-plugin</artifactId>
> <version>2.4.2</version>
> <inherited>false</inherited>
> <configuration>
> <childDelegation>true</childDelegation>
> <useManifestOnlyJar>true</useManifestOnlyJar>
> <useSystemClassLoader>true</useSystemClassLoader>
> <skipTests>true</skipTests>
> <forkMode>never</forkMode>
> <useFile>true</useFile>
> <trimStackTrace>false</trimStackTrace>
> <failIfNoTests>false</failIfNoTests>
> <systemProperties combine.children="append">
> <redirectTestOutputToFile>true</redirectTestOutputToFile>
> <classesDirectory>${project.build.directory}/target/test-classes</classesDirectory>
> <property>
> <!-- Pass this through to the tests (if set!) to have them pick the right repository -->
> <name>maven.repo.local</name>
> <value>file://C:/DOCUME~1/NotBillGates/.m2/repository</value>
> </property>
> </systemProperties>
> </configuration>
> </plugin>
> </plugins>
> </build>
> I think this is perhaps what ken was alluding to about maven when bugs are discovered
> my suggestion is we clear the Guice Injector code out of maven-surefire-plugin until we can determine DefaultPlexusContainer can correctly parse the artifact string from
> org.apache.maven.plugins:maven-surefire-plugin:2.5:test:
> to
> org.apache.maven.plugins:maven-surefire-plugin:2.5
> Thanks,
> Martin
--
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