Good day to you, Arnaud, Just a hunch....
The Symptom: Somewhere along the stacktrace, a component failed to get composed because of a NoClassDefFoundError exception. Solution: I think the expected transitive dependency was broken. You may want to declare the binary containing the "NoClassDefFoundError class" as a direct dependency of your project. ..also, you may want to take a look at your dependency tree ( i.e by using "mvn project-info-reports:dependencies -X" ) to have a better idea of what's happening. Explanation of what may be happening: I experienced something like this before. And this is how it went with mine... I had a project grp.id:proj-a:1. And it's dependency tree looked something like this grp.id:proj-a:1 |-- grp.id:proj-b:1 | `-- grp.id:proj-c:1 | `-- grp.id:proj-d:2 <~ did not get included `-- grp.id:proj-e:1 `-- grp.id:proj-d:1 <~ was chosen over version 2 the difference between grp.id:proj-d:1 and grp.id:proj-d:2 is that grp.id:proj-d:2 has a class MyClass. Thus, when my project grp.id:proj-a:1 referenced the class MyClass, it was unable to load it because the version of grp.id:proj-d that got resolved was version 1 instead of version 2 ( see [1] for more details ). So to prevent this, I had to declared grp.id:proj-d:2 as a direct dependency so that i my dependency tree would look something like grp.id:proj-a:1 |-- grp.id:proj-b:1 | `-- grp.id:proj-c:1 | `-- grp.id:proj-d:2 |-- grp.id:proj-e:1 | `-- grp.id:proj-d:1 <~ did not get included `-- grp.id:proj-d:2 <~ included I am not sure though why your dependency tree is different between your maven commandline and your embedded maven. Cheers, Franz [1] http://docs.codehaus.org/display/MAVENUSER/Dependency+Mechanism Arnaud Bailly-3 wrote: > > Hello, > I am trying to add some integration tests for a plugin I wrote, using > MavenEmbedder. When running the test, I got the following impressive > exception trace: > > ------------------------------------------------------------------------------- > Test set: oqube.patchwork.it.PatchworkMavenTest > ------------------------------------------------------------------------------- > Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.662 sec > <<< FAILURE! > test01(oqube.patchwork.it.PatchworkMavenTest) Time elapsed: 0.623 sec > <<< ERROR! > org.apache.maven.embedder.MavenEmbedderException: Cannot lookup required > component. > at org.apache.maven.embedder.MavenEmbedder.start(MavenEmbedder.java:644) > at > oqube.patchwork.it.PatchworkMavenTest.setUp(PatchworkMavenTest.java:48) > at junit.framework.TestCase.runBare(TestCase.java:125) > at junit.framework.TestResult$1.protect(TestResult.java:106) > at junit.framework.TestResult.runProtected(TestResult.java:124) > at junit.framework.TestResult.run(TestResult.java:109) > at junit.framework.TestCase.run(TestCase.java:118) > at junit.framework.TestSuite.runTest(TestSuite.java:208) > at junit.framework.TestSuite.run(TestSuite.java:203) > 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:585) > at > org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:210) > at > org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:135) > at > org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:122) > at org.apache.maven.surefire.Surefire.run(Surefire.java:129) > 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:585) > at > org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:225) > at > org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:747) > Caused by: > org.codehaus.plexus.component.repository.exception.ComponentLookupException: > Unable to lookup component 'org.apache.maven.project.MavenProjectBuilder', > it could not be started > at > org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:339) > at org.codehaus.plexus.embed.Embedder.lookup(Embedder.java:78) > at org.apache.maven.embedder.MavenEmbedder.start(MavenEmbedder.java:610) > ... 22 more > Caused by: > org.codehaus.plexus.component.repository.exception.ComponentLifecycleException: > Error starting component > at > org.codehaus.plexus.component.manager.AbstractComponentManager.startComponentLifecycle(AbstractComponentManager.java:109) > at > org.codehaus.plexus.component.manager.AbstractComponentManager.createComponentInstance(AbstractComponentManager.java:95) > at > org.codehaus.plexus.component.manager.ClassicSingletonComponentManager.getComponent(ClassicSingletonComponentManager.java:92) > at > org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:331) > ... 24 more > Caused by: > org.codehaus.plexus.personality.plexus.lifecycle.phase.PhaseExecutionException: > Error composing component > at > org.codehaus.plexus.personality.plexus.lifecycle.phase.CompositionPhase.execute(CompositionPhase.java:33) > at > org.codehaus.plexus.lifecycle.AbstractLifecycleHandler.start(AbstractLifecycleHandler.java:101) > at > org.codehaus.plexus.component.manager.AbstractComponentManager.startComponentLifecycle(AbstractComponentManager.java:105) > ... 27 more > Caused by: org.codehaus.plexus.component.composition.CompositionException: > Composition failed of field artifactResolver in object of type > org.apache.maven.project.DefaultMavenProjectBuilder because the > requirement > ComponentRequirement{role='org.apache.maven.artifact.resolver.ArtifactResolver', > roleHint='null', fieldName='null'} was missing > at > org.codehaus.plexus.component.composition.FieldComponentComposer.assignRequirementToField(FieldComponentComposer.java:154) > at > org.codehaus.plexus.component.composition.FieldComponentComposer.assembleComponent(FieldComponentComposer.java:73) > at > org.codehaus.plexus.component.composition.DefaultComponentComposerManager.assembleComponent(DefaultComponentComposerManager.java:68) > at > org.codehaus.plexus.DefaultPlexusContainer.composeComponent(DefaultPlexusContainer.java:1486) > at > org.codehaus.plexus.personality.plexus.lifecycle.phase.CompositionPhase.execute(CompositionPhase.java:29) > ... 29 more > Caused by: > org.codehaus.plexus.component.repository.exception.ComponentLookupException: > Unable to lookup component > 'org.apache.maven.artifact.resolver.ArtifactResolver', it could not be > created > at > org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:335) > at > org.codehaus.plexus.component.composition.FieldComponentComposer.assignRequirementToField(FieldComponentComposer.java:129) > ... 33 more > Caused by: > org.codehaus.plexus.component.factory.ComponentInstantiationException: > Could not instanciate component: role: > 'org.apache.maven.artifact.resolver.ArtifactResolver', implementation: > 'org.apache.maven.artifact.resolver.DefaultArtifactResolver' > at > org.codehaus.plexus.component.factory.java.JavaComponentFactory.makeException(JavaComponentFactory.java:77) > at > org.codehaus.plexus.component.factory.java.JavaComponentFactory.newInstance(JavaComponentFactory.java:62) > at > org.codehaus.plexus.DefaultPlexusContainer.createComponentInstance(DefaultPlexusContainer.java:1464) > at > org.codehaus.plexus.component.manager.AbstractComponentManager.createComponentInstance(AbstractComponentManager.java:93) > at > org.codehaus.plexus.component.manager.ClassicSingletonComponentManager.getComponent(ClassicSingletonComponentManager.java:92) > at > org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:331) > ... 34 more > Caused by: java.lang.NoClassDefFoundError: > org/apache/maven/artifact/resolver/MultipleArtifactsNotFoundException > at java.lang.Class.getDeclaredConstructors0(Native Method) > at java.lang.Class.privateGetDeclaredConstructors(Class.java:2328) > at java.lang.Class.getConstructor0(Class.java:2640) > at java.lang.Class.newInstance0(Class.java:321) > at java.lang.Class.newInstance(Class.java:303) > at > org.codehaus.plexus.component.factory.java.JavaComponentFactory.newInstance(JavaComponentFactory.java:44) > ... 38 more > > > When running the same test in Eclipse, I got: > > > org.apache.maven.embedder.MavenEmbedderException: Cannot lookup required > component. > at org.apache.maven.embedder.MavenEmbedder.start(MavenEmbedder.java:644) > at > oqube.patchwork.it.PatchworkMavenTest.setUp(PatchworkMavenTest.java:49) > at junit.framework.TestCase.runBare(TestCase.java:125) > at junit.framework.TestResult$1.protect(TestResult.java:106) > at junit.framework.TestResult.runProtected(TestResult.java:124) > at junit.framework.TestResult.run(TestResult.java:109) > at junit.framework.TestCase.run(TestCase.java:118) > at junit.framework.TestSuite.runTest(TestSuite.java:208) > at junit.framework.TestSuite.run(TestSuite.java:203) > at > org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128) > at > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) > Caused by: > org.codehaus.plexus.component.repository.exception.ComponentLookupException: > Unable to lookup component 'org.apache.maven.project.MavenProjectBuilder', > it could not be started > at > org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:339) > at org.codehaus.plexus.embed.Embedder.lookup(Embedder.java:78) > at org.apache.maven.embedder.MavenEmbedder.start(MavenEmbedder.java:610) > ... 14 more > Caused by: > org.codehaus.plexus.component.repository.exception.ComponentLifecycleException: > Error starting component > at > org.codehaus.plexus.component.manager.AbstractComponentManager.startComponentLifecycle(AbstractComponentManager.java:109) > at > org.codehaus.plexus.component.manager.AbstractComponentManager.createComponentInstance(AbstractComponentManager.java:95) > at > org.codehaus.plexus.component.manager.ClassicSingletonComponentManager.getComponent(ClassicSingletonComponentManager.java:92) > at > org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:331) > ... 16 more > Caused by: > org.codehaus.plexus.personality.plexus.lifecycle.phase.PhaseExecutionException: > Error composing component > at > org.codehaus.plexus.personality.plexus.lifecycle.phase.CompositionPhase.execute(CompositionPhase.java:33) > at > org.codehaus.plexus.lifecycle.AbstractLifecycleHandler.start(AbstractLifecycleHandler.java:101) > at > org.codehaus.plexus.component.manager.AbstractComponentManager.startComponentLifecycle(AbstractComponentManager.java:105) > ... 19 more > Caused by: org.codehaus.plexus.component.composition.CompositionException: > Composition failed of field profilesBuilder in object of type > org.apache.maven.project.DefaultMavenProjectBuilder because the > requirement > ComponentRequirement{role='org.apache.maven.profiles.MavenProfilesBuilder', > roleHint='null', fieldName='null'} was missing > at > org.codehaus.plexus.component.composition.FieldComponentComposer.assignRequirementToField(FieldComponentComposer.java:154) > at > org.codehaus.plexus.component.composition.FieldComponentComposer.assembleComponent(FieldComponentComposer.java:73) > at > org.codehaus.plexus.component.composition.DefaultComponentComposerManager.assembleComponent(DefaultComponentComposerManager.java:68) > at > org.codehaus.plexus.DefaultPlexusContainer.composeComponent(DefaultPlexusContainer.java:1486) > at > org.codehaus.plexus.personality.plexus.lifecycle.phase.CompositionPhase.execute(CompositionPhase.java:29) > ... 21 more > Caused by: > org.codehaus.plexus.component.repository.exception.ComponentLookupException: > Unable to lookup component > 'org.apache.maven.profiles.MavenProfilesBuilder', it could not be created > at > org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:335) > at > org.codehaus.plexus.component.composition.FieldComponentComposer.assignRequirementToField(FieldComponentComposer.java:129) > ... 25 more > Caused by: > org.codehaus.plexus.component.factory.ComponentInstantiationException: > Could not instanciate component: role: > 'org.apache.maven.profiles.MavenProfilesBuilder', implementation: > 'org.apache.maven.profiles.DefaultMavenProfilesBuilder' > at > org.codehaus.plexus.component.factory.java.JavaComponentFactory.makeException(JavaComponentFactory.java:77) > at > org.codehaus.plexus.component.factory.java.JavaComponentFactory.newInstance(JavaComponentFactory.java:62) > at > org.codehaus.plexus.DefaultPlexusContainer.createComponentInstance(DefaultPlexusContainer.java:1464) > at > org.codehaus.plexus.component.manager.AbstractComponentManager.createComponentInstance(AbstractComponentManager.java:93) > at > org.codehaus.plexus.component.manager.ClassicSingletonComponentManager.getComponent(ClassicSingletonComponentManager.java:92) > at > org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:331) > ... 26 more > Caused by: java.lang.NoClassDefFoundError: > org/codehaus/plexus/util/interpolation/ValueSource > at java.lang.Class.getDeclaredConstructors0(Native Method) > at java.lang.Class.privateGetDeclaredConstructors(Class.java:2328) > at java.lang.Class.getConstructor0(Class.java:2640) > at java.lang.Class.newInstance0(Class.java:321) > at java.lang.Class.newInstance(Class.java:303) > at > org.codehaus.plexus.component.factory.java.JavaComponentFactory.newInstance(JavaComponentFactory.java:44) > ... 30 more > > Here is my pom: > > <project xmlns="http://maven.apache.org/POM/4.0.0" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 > http://maven.apache.org/maven-v4_0_0.xsd"> > <modelVersion>4.0.0</modelVersion> > > <parent> > <groupId>oqube</groupId> > <artifactId>patchwork</artifactId> > <version>2.0-SNAPSHOT</version> > </parent> > > <groupId>oqube</groupId> > <artifactId>patchwork-it</artifactId> > <packaging>jar</packaging> > <version>2.0-SNAPSHOT</version> > <name>Integration tests</name> > > <description> > Integration tests for Patchwork. > </description> > > > <dependencies> > > <dependency> > <groupId>org.apache.maven</groupId> > <artifactId>maven-embedder</artifactId> > <version>2.0.4</version> > </dependency> > > <dependency> > <groupId>oqube.patchwork</groupId> > <artifactId>patchwork-maven-plugin</artifactId> > <version>2.0-SNAPSHOT</version> > </dependency> > > <dependency> > <groupId>oqube</groupId> > <artifactId>patchwork-control</artifactId> > <version>2.0-SNAPSHOT</version> > </dependency> > </dependencies> > > <build> > <plugins> > <plugin> > <groupId>org.apache.maven.plugins</groupId> > <artifactId>maven-surefire-plugin</artifactId> > <configuration> > <excludes> > <exclude> > test*/**</exclude></excludes></configuration> > </plugin></plugins></build> > </project> > > I am a bit stuck. Help greatly appreciated. > > Regards, > -- > OQube < software engineering \ génie logiciel > > Arnaud Bailly, Dr. > \web> http://www.oqube.com > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > -- View this message in context: http://www.nabble.com/Integration-testing-plugin-and-version-problems-tf3192272s177.html#a8866753 Sent from the Maven - Users mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]