[ 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