I used transformer <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ComponentsXmlResourceTransformer">
</transformer> </transformers> which threw exception in maven-surefire-plugin runtime : *[WARNING] Error injecting: org.apache.maven.surefire.shade.org.apache.maven.shared.artifact.resolve.internal.DefaultArtifactResolverjava.lang.TypeNotPresentException: Type org.apache.maven.surefire.shade.org.apache.maven.shared.artifact.resolve.internal.DefaultArtifactResolver not present* *Caused by: java.lang.ClassNotFoundException: org.apache.maven.surefire.shade.org.apache.maven.shared.artifact.resolve.internal.DefaultArtifactResolver* After these experiences I decided to simplify something to have a progress and removed transformer and packages reallocation. The surefire runtime is not able to find internal class which should be fixed first. *java.lang.NoClassDefFoundError: org/apache/maven/surefire/common/junit48/JUnit48TestChecker: org.apache.maven.surefire.common.junit48.JUnit48TestChecker -> [Help 1]* This means the transitive dependency of provider surefire-junit47 was not propagated to the classpath of Forked JVM. It means it's a bug in my latest commit as it seems. After this we should make repackaging working again. Cheers Tibor On Sun, Jan 17, 2016 at 6:29 PM, Robert Scholte <[email protected]> wrote: > Hi Tibor, > > I actually had the same question about the other dependencies which are > shaded. > Based on the exception I would expect that you need a transformer[1], > based on the excepted I would say the PluginXmlResourceTransformer > (otherwise ComponentsXmlResourceTransformer). > The other option is to finetune the relocation pattern, since > org.apache.maven.share also shades the packages of maven-artifact-transfer. > > thanks, > Robert > > [1] > http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html > > > Op Sun, 17 Jan 2016 17:56:44 +0100 schreef Tibor Digana < > [email protected]>: > > > Hi Robert, >> >> A new problem with maven-artifact-transfer. >> Should we really shade it? >> Not able to inject ArtifactResolver as it seems: >> >> [INFO] --- maven-surefire-plugin:2.19.2-SNAPSHOT:test (default-test) @ >> child --- >> [WARNING] Error injecting: org.apache.maven.plugin.surefire.SurefirePlugin >> com.google.inject.ProvisionException: Guice provision errors: >> >> 1) No implementation for >> >> org.apache.maven.surefire.shade.org.apache.maven.shared.artifact.resolve.ArtifactResolver >> was bound. >> while locating org.apache.maven.plugin.surefire.SurefirePlugin >> >> 1 error >> at >> com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1006) >> at >> >> com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1032) >> at >> >> org.eclipse.sisu.space.AbstractDeferredClass.get(AbstractDeferredClass.java:48) >> at >> >> com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:86) >> at >> >> com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:55) >> at >> >> com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70) >> at >> >> com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:100) >> at >> >> org.eclipse.sisu.plexus.PlexusLifecycleManager.onProvision(PlexusLifecycleManager.java:133) >> at >> >> com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:109) >> at >> >> com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:55) >> at >> >> com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:68) >> at >> >> com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:47) >> at >> com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:997) >> at >> >> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1047) >> at >> com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:993) >> at com.google.inject.Scopes$1$1.get(Scopes.java:59) >> at >> org.eclipse.sisu.inject.LazyBeanEntry.getValue(LazyBeanEntry.java:82) >> at >> org.eclipse.sisu.plexus.LazyPlexusBean.getValue(LazyPlexusBean.java:51) >> at >> >> org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:260) >> at >> >> org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:252) >> at >> >> org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:462) >> at >> >> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:120) >> at >> >> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) >> at >> >> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) >> at >> >> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) >> at >> >> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108) >> at >> >> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76) >> at >> >> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) >> at >> >> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116) >> at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361) >> at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155) >> at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584) >> at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213) >> at org.apache.maven.cli.MavenCli.main(MavenCli.java:157) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >> at >> >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:497) >> at >> >> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) >> at >> >> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) >> at >> >> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) >> at >> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) >> at org.codehaus.classworlds.Launcher.main(Launcher.java:46) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >> at >> >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:497) >> at >> com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) >> [INFO] >> ------------------------------------------------------------------------ >> [INFO] BUILD FAILURE >> [INFO] >> ------------------------------------------------------------------------ >> [INFO] Total time: 1.702 s >> [INFO] Finished at: 2016-01-17T17:53:06+01:00 >> [INFO] Final Memory: 9M/155M >> [INFO] >> ------------------------------------------------------------------------ >> [ERROR] Failed to execute goal >> org.apache.maven.plugins:maven-surefire-plugin:2.19.2-SNAPSHOT:test >> (default-test) on project child: Execution default-test of goal >> org.apache.maven.plugins:maven-surefire-plugin:2.19.2-SNAPSHOT: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.19.2-SNAPSHOT': >> com.google.inject.ProvisionException: Guice provision errors: >> [ERROR] >> [ERROR] 1) No implementation for >> >> org.apache.maven.surefire.shade.org.apache.maven.shared.artifact.resolve.ArtifactResolver >> was bound. >> [ERROR] while locating org.apache.maven.plugin.surefire.SurefirePlugin >> [ERROR] at >> >> ClassRealm[plugin>org.apache.maven.plugins:maven-surefire-plugin:2.19.2-SNAPSHOT, >> parent: sun.misc.Launcher$AppClassLoader@7852e922] >> [ERROR] while locating org.apache.maven.plugin.Mojo annotated with >> >> @com.google.inject.name.Named(value=org.apache.maven.plugins:maven-surefire-plugin:2.19.2-SNAPSHOT:test) >> [ERROR] >> [ERROR] 1 error >> [ERROR] role: org.apache.maven.plugin.Mojo >> [ERROR] roleHint: >> org.apache.maven.plugins:maven-surefire-plugin:2.19.2-SNAPSHOT:test >> >> On Sat, Jan 9, 2016 at 1:17 PM, Robert Scholte <[email protected]> >> wrote: >> >> Hi Tibor, >>> >>> Regarding the artifactResolver.resolveTransitively, this has been >>> replaced >>> with dependencyResolver. The reason is that an artifact is basically a >>> coordinate with a file, it is not aware of dependencies. >>> >>> I've traced one down for you: >>> >>> org.apache.maven.plugin.surefire.AbstractSurefireMojo.getForkConfiguration() >>> contains >>> Artifact shadeFire = getPluginArtifactMap().get( >>> "org.apache.maven.surefire:surefire-shadefire" ); >>> >>> If you get the Plugin instead and use >>> org.apache.maven.shared.dependency.TransferUtils.toDependencyCoordinate( >>> plugin ) >>> , then you'll be able to get all dependencies and their artifacts for the >>> classpath. >>> >>> I'll leave the fixing up to you to get some more feedback on the >>> maven-artifact-transfer components. >>> >>> thanks, >>> Robert >>> >>> Op Thu, 07 Jan 2016 20:33:47 +0100 schreef Tibor Digana < >>> [email protected]>: >>> >>> >>> Now I removed maven-compat completely. >>> >>>> >>>> <dependency> >>>> <groupId>org.apache.maven.shared</groupId> >>>> <artifactId>maven-artifact-transfer</artifactId> >>>> <version>3.0-SNAPSHOT</version> >>>> </dependency> >>>> >>>> It seems release version is not available. >>>> >>>> I should resolve compilation error after new 3.0 AtrifactResolver and >>>> I will come back to you. >>>> >>>> >>>> >>>> >>>> return artifactResolver.resolveTransitively( Collections.singleton( >>>> providerArtifact ), originatingArtifact, >>>> localRepository, >>>> remoteRepositories, artifactMetadataSource, >>>> filter ); >>>> >>>> >>>> >>>> >>>> On Thu, Jan 7, 2016 at 7:39 PM, Robert Scholte <[email protected]> >>>> wrote: >>>> >>>> Hi Tibor, >>>> >>>>> >>>>> Bullet 4: Remove maven-compat (or give it the test-scope if it is >>>>> required >>>>> by the maven-plugin-testing-harness) >>>>> >>>>> Now I think you're at a state where Maven2 classes must be replaced >>>>> with >>>>> Maven3 solutions. >>>>> >>>>> Robert >>>>> >>>>> Op Thu, 07 Jan 2016 18:54:06 +0100 schreef Tibor Digana < >>>>> [email protected]>: >>>>> >>>>> >>>>> Hi Robert, >>>>> >>>>> >>>>>> I did as you said and I have new issue. Any dea? >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> testSurefireReportSingleError(org.apache.maven.plugins.surefire.report.SurefireReportMojoTest) >>>>>> Time elapsed: 0.042 sec <<< ERROR! >>>>>> >>>>>> >>>>>> >>>>>> org.codehaus.plexus.component.repository.exception.ComponentLookupException: >>>>>> java.util.NoSuchElementException >>>>>> role: org.apache.maven.repository.RepositorySystem >>>>>> roleHint: >>>>>> at >>>>>> >>>>>> >>>>>> >>>>>> org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:253) >>>>>> at >>>>>> >>>>>> >>>>>> >>>>>> org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:241) >>>>>> at >>>>>> >>>>>> >>>>>> >>>>>> org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:235) >>>>>> at >>>>>> org.codehaus.plexus.PlexusTestCase.lookup(PlexusTestCase.java:207) >>>>>> at >>>>>> >>>>>> >>>>>> >>>>>> org.apache.maven.plugin.testing.AbstractMojoTestCase.setUp(AbstractMojoTestCase.java:118) >>>>>> at >>>>>> >>>>>> >>>>>> >>>>>> org.apache.maven.plugins.surefire.report.SurefireReportMojoTest.setUp(SurefireReportMojoTest.java:56) >>>>>> at junit.framework.TestCase.runBare(TestCase.java:139) >>>>>> at junit.framework.TestResult$1.protect(TestResult.java:122) >>>>>> at junit.framework.TestResult.runProtected(TestResult.java:142) >>>>>> at junit.framework.TestResult.run(TestResult.java:125) >>>>>> at junit.framework.TestCase.run(TestCase.java:129) >>>>>> at junit.framework.TestSuite.runTest(TestSuite.java:252) >>>>>> at junit.framework.TestSuite.run(TestSuite.java:247) >>>>>> at >>>>>> >>>>>> >>>>>> >>>>>> org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86) >>>>>> at >>>>>> >>>>>> >>>>>> >>>>>> org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252) >>>>>> at >>>>>> >>>>>> >>>>>> >>>>>> org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141) >>>>>> at >>>>>> >>>>>> >>>>>> >>>>>> org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112) >>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>>> at >>>>>> >>>>>> >>>>>> >>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >>>>>> at >>>>>> >>>>>> >>>>>> >>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>>> at java.lang.reflect.Method.invoke(Method.java:497) >>>>>> at >>>>>> >>>>>> >>>>>> >>>>>> org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) >>>>>> at >>>>>> >>>>>> >>>>>> >>>>>> org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) >>>>>> at >>>>>> >>>>>> >>>>>> >>>>>> org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) >>>>>> at >>>>>> >>>>>> >>>>>> >>>>>> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115) >>>>>> at >>>>>> >>>>>> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75) >>>>>> Caused by: java.util.NoSuchElementException >>>>>> at java.util.Collections$EmptyIterator.next(Collections.java:4189) >>>>>> at >>>>>> >>>>>> >>>>>> >>>>>> org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:249) >>>>>> ... 25 more >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Thu, Jan 7, 2016 at 6:10 PM, Robert Scholte <[email protected]> >>>>>> wrote: >>>>>> >>>>>> Hi Tibor, >>>>>> >>>>>> >>>>>>> so this is not how it should be done. >>>>>>> Compat contains classes which Maven2 classes which have been replaced >>>>>>> by >>>>>>> Maven3 or are not used anymore. >>>>>>> Only plugins which need to stay compatible with Maven2 should include >>>>>>> this >>>>>>> dependency. >>>>>>> >>>>>>> I'll update the page, because we've decided to change the version to >>>>>>> 3.0-SNAPSHOT >>>>>>> >>>>>>> And regarding your other message: see the third bullet when using >>>>>>> maven-plugin-testing-harness. Use version 2.1 if you want to ensure >>>>>>> that >>>>>>> the tests are Maven 3.0 compatible. >>>>>>> >>>>>>> If you need help, just let me know. By now I can recognize most of >>>>>>> the >>>>>>> migration issues :) >>>>>>> >>>>>>> thanks, >>>>>>> Robert >>>>>>> >>>>>>> Op Thu, 07 Jan 2016 00:50:10 +0100 schreef Tibor Digana < >>>>>>> [email protected]>: >>>>>>> >>>>>>> P=NP >>>>>>> >>>>>>> maven-compat made the trick >>>>>>> >>>>>>>> >>>>>>>> <dependency> >>>>>>>> <groupId>org.apache.maven</groupId> >>>>>>>> <artifactId>maven-compat</artifactId> >>>>>>>> </dependency> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Thu, Jan 7, 2016 at 12:09 AM, Tibor Digana-2 [via Maven] < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>> I missing this import in MOJO after migrating plugin to 3.0 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> import org.apache.maven.shared.artifact.resolve.ArtifactResolver; >>>>>>>>> >>>>>>>>> The doc [1] says that maven-artifact-transfer should be used but it >>>>>>>>> does >>>>>>>>> not have yet a release version, or? >>>>>>>>> >>>>>>>>> <dependency> >>>>>>>>> <groupId>org.apache.maven.shared</groupId> >>>>>>>>> <artifactId>maven-artifact-transfer</artifactId> >>>>>>>>> <version>0.0.1-SNAPSHOT</version> >>>>>>>>> </dependency> >>>>>>>>> >>>>>>>>> [1] >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> https://cwiki.apache.org/confluence/display/MAVEN/Plugin+migration+to+Maven3+dependencies >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Cheers >>>>>>>>> Tibor >>>>>>>>> >>>>>>>>> >>>>>>>>> ------------------------------ >>>>>>>>> If you reply to this email, your message will be added to the >>>>>>>>> discussion >>>>>>>>> below: >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> http://maven.40175.n5.nabble.com/migrating-Surefire-to-3-0-RC1-tp5858124.html >>>>>>>>> To start a new topic under Maven Developers, email >>>>>>>>> [email protected] >>>>>>>>> To unsubscribe from Maven Developers, click here >>>>>>>>> < >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> http://maven.40175.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=142166&code=dGlib3JkaWdhbmFAYXBhY2hlLm9yZ3wxNDIxNjZ8LTI4OTQ5MjEwMg== >>>>>>>>> > >>>>>>>>> . >>>>>>>>> NAML >>>>>>>>> < >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> http://maven.40175.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml >>>>>>>>> > >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> -- >>>>>>>> View this message in context: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> http://maven.40175.n5.nabble.com/migrating-Surefire-to-3-0-RC1-tp5858124p5858130.html >>>>>>>> Sent from the Maven Developers mailing list archive at Nabble.com. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> --------------------------------------------------------------------- >>>>>>>> >>>>>>> To unsubscribe, e-mail: [email protected] >>>>>>> For additional commands, e-mail: [email protected] >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> --------------------------------------------------------------------- >>>>>> >>>>> To unsubscribe, e-mail: [email protected] >>>>> For additional commands, e-mail: [email protected] >>>>> >>>>> >>>>> >>>>> >>>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >>> >>> >> > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > -- Cheers Tibor
