[ https://issues.apache.org/jira/browse/MSHADE-291?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17115398#comment-17115398 ]
Pavel Bekkerman edited comment on MSHADE-291 at 5/24/20, 10:55 PM: ------------------------------------------------------------------- I have been using 3.1.1 version of the plugin, until ran into this issue. Unfortunately, I have to report: the FIX is still NON-functional. Moreover, ServicesResourceTransformer seems to be broken completely in 3.2.2+(!) I tried 3.2.2, 3.2.3, and 3.3.0-SNAPSHOT built from the latest `master`. Whatever I do, I'm getting the following error message: {code:java} [ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:3.3.0-SNAPSHOT:shade (default) on project XXXXXXX: Unable to parse configuration of mojo org.apache.maven.plugins:maven-shade-plugin:3.3.0-SNAPSHOT:shade for parameter resource: Cannot find 'resource' in class org.apache.maven.plugins.shade.resource.ServicesResourceTransformer -> [Help 1]{code} Here's the stack trace: {code:java} org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:3.2.2:shade (default) on project XXXXXXXXXXX: Unable to parse configuration of mojo org.apache.maven.plugins:maven-shade-plugin:3.2.2:shade for parameter resource: Cannot find 'resource' in class org.apache.maven.plugins.shade.resource.ServicesResourceTransformerorg.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:3.2.2:shade (default) on project XXXXXXXXXXXX: Unable to parse configuration of mojo org.apache.maven.plugins:maven-shade-plugin:3.2.2:shade for parameter resource: Cannot find 'resource' in class org.apache.maven.plugins.shade.resource.ServicesResourceTransformer at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212) 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:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) 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:498) 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)Caused by: org.apache.maven.plugin.PluginConfigurationException: Unable to parse configuration of mojo org.apache.maven.plugins:maven-shade-plugin:3.2.2:shade for parameter resource: Cannot find 'resource' in class org.apache.maven.plugins.shade.resource.ServicesResourceTransformer at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:662) at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:594) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:121) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) ... 20 moreCaused by: org.codehaus.plexus.component.configurator.ComponentConfigurationException: Cannot find 'resource' in class org.apache.maven.plugins.shade.resource.ServicesResourceTransformer at org.eclipse.sisu.plexus.CompositeBeanHelper.setProperty(CompositeBeanHelper.java:252) at org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration(ObjectWithFieldsConverter.java:101) at org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.fromConfiguration(ObjectWithFieldsConverter.java:57) at org.codehaus.plexus.component.configurator.converters.composite.AbstractCollectionConverter.fromChildren(AbstractCollectionConverter.java:54) at org.codehaus.plexus.component.configurator.converters.composite.ArrayConverter.fromConfiguration(ArrayConverter.java:51) at org.eclipse.sisu.plexus.CompositeBeanHelper.convertProperty(CompositeBeanHelper.java:273) at org.eclipse.sisu.plexus.CompositeBeanHelper.setProperty(CompositeBeanHelper.java:210) at org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration(ObjectWithFieldsConverter.java:101) at org.codehaus.plexus.component.configurator.BasicComponentConfigurator.configureComponent(BasicComponentConfigurator.java:34) at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:632) ... 23 more {code} When debugging the plugin execution I was able to spot the following: {code:java} ... <transformers><transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"><resource>META-INF/spring.handlers</resource> </transformer> </transformers> ...{code} My configuration is just: {code:java} <transformers> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" /> </transformers>{code} META-INF/spring.handlers is not mentioned anywhere in my project. I know META-INF/spring.handlers is mentioned in the Transformer usage examples. I don't understand how it made its way into the execution... Unfortunately, I wasn't able to spot its origin. But, clearly even if the FIX to the issue in context is indeed available since 3.2.2+ - We're still blocked, as ServicesResourceTransformer simply stopped working in those releases(!) In addition, I tried the following as an alternative: {code:java} <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/services/XXXXXXXXXXXXX</resource> </transformer> {code} To my disappointment, although now the execution doesn't fail, the issue in context is NOT FIXED for AppendingTransformer: the shaded pattern is STILL applied multiples times when relocating the contents of the services file. was (Author: wheredevel): I have been using 3.1.1 version of the plugin, until ran in that issue. Unfortunately, I have to report: the FIX is still NON-functional. Moreover, ServicesResourceTransformer seems to be broken completely in 3.2.2+(!) I tried 3.2.2, 3.2.3, and 3.3.0-SNAPSHOT built from the latest `master`. Whatever I do, I'm getting the following error message: {code:java} [ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:3.3.0-SNAPSHOT:shade (default) on project XXXXXXX: Unable to parse configuration of mojo org.apache.maven.plugins:maven-shade-plugin:3.3.0-SNAPSHOT:shade for parameter resource: Cannot find 'resource' in class org.apache.maven.plugins.shade.resource.ServicesResourceTransformer -> [Help 1]{code} Here's the stack trace: {code:java} org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:3.2.2:shade (default) on project XXXXXXXXXXX: Unable to parse configuration of mojo org.apache.maven.plugins:maven-shade-plugin:3.2.2:shade for parameter resource: Cannot find 'resource' in class org.apache.maven.plugins.shade.resource.ServicesResourceTransformerorg.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:3.2.2:shade (default) on project XXXXXXXXXXXX: Unable to parse configuration of mojo org.apache.maven.plugins:maven-shade-plugin:3.2.2:shade for parameter resource: Cannot find 'resource' in class org.apache.maven.plugins.shade.resource.ServicesResourceTransformer at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212) 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:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) 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:498) 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)Caused by: org.apache.maven.plugin.PluginConfigurationException: Unable to parse configuration of mojo org.apache.maven.plugins:maven-shade-plugin:3.2.2:shade for parameter resource: Cannot find 'resource' in class org.apache.maven.plugins.shade.resource.ServicesResourceTransformer at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:662) at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:594) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:121) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) ... 20 moreCaused by: org.codehaus.plexus.component.configurator.ComponentConfigurationException: Cannot find 'resource' in class org.apache.maven.plugins.shade.resource.ServicesResourceTransformer at org.eclipse.sisu.plexus.CompositeBeanHelper.setProperty(CompositeBeanHelper.java:252) at org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration(ObjectWithFieldsConverter.java:101) at org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.fromConfiguration(ObjectWithFieldsConverter.java:57) at org.codehaus.plexus.component.configurator.converters.composite.AbstractCollectionConverter.fromChildren(AbstractCollectionConverter.java:54) at org.codehaus.plexus.component.configurator.converters.composite.ArrayConverter.fromConfiguration(ArrayConverter.java:51) at org.eclipse.sisu.plexus.CompositeBeanHelper.convertProperty(CompositeBeanHelper.java:273) at org.eclipse.sisu.plexus.CompositeBeanHelper.setProperty(CompositeBeanHelper.java:210) at org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration(ObjectWithFieldsConverter.java:101) at org.codehaus.plexus.component.configurator.BasicComponentConfigurator.configureComponent(BasicComponentConfigurator.java:34) at org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:632) ... 23 more {code} When debugging the plugin execution I was able to spot the following: {code:java} ... <transformers><transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"><resource>META-INF/spring.handlers</resource> </transformer> </transformers> ...{code} My configuration is just: {code:java} <transformers> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" /> </transformers>{code} META-INF/spring.handlers is not mentioned anywhere in my project. I know META-INF/spring.handlers is mentioned in the Transformer usage examples. I don't understand how it made its way into the execution... Unfortunately, I wasn't able to spot its origin. But, clearly even if the FIX to the issue in context is indeed available since 3.2.2+ - We're still blocked, as ServicesResourceTransformer simply stopped working in those releases(!) In addition, I tried the following as an alternative: {code:java} <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/services/XXXXXXXXXXXXX</resource> </transformer> {code} To my disappointment, although now the execution doesn't fail, the issue in context is NOT FIXED for AppendingTransformer: the shaded pattern is STILL applied multiples times when relocating the contents of the services file. > shadedPattern applied multiples times when relocating the contents of > META-INF/services files > --------------------------------------------------------------------------------------------- > > Key: MSHADE-291 > URL: https://issues.apache.org/jira/browse/MSHADE-291 > Project: Maven Shade Plugin > Issue Type: Bug > Affects Versions: 3.1.1, 3.2.0, 3.2.1 > Reporter: Jan Luehe > Assignee: Robert Scholte > Priority: Major > Labels: up-for-grabs > Fix For: 3.2.2 > > > Steps to reproduce: > 1. Modified the test case for > https://issues.apache.org/jira/browse/MSHADE-190, as follows: > {code:java} > diff --git a/pom.xml b/pom.xml > index 746b700..aea9abb 100644 > --- a/pom.xml > +++ b/pom.xml > @@ -68,12 +68,12 @@ > <plugin> > <groupId>org.apache.maven.plugins</groupId> > <artifactId>maven-shade-plugin</artifactId> > - <version>2.4</version> > + <version>3.1.1</version> > <configuration> > <relocations> > <relocation> > - <pattern>org.eclipse.*</pattern> > - <shadedPattern>borg.eclipse.*</shadedPattern> > + <pattern>org.eclipse</pattern> > + <shadedPattern>org.eclipse1234</shadedPattern> > </relocation> > </relocations> > <transformers> > {code} > 2. mvn package > 3. jar -xvf target/shade-meta-tc-1.0-SNAPSHOT.jar META-INF/services > 4. cat META-INF/services/org.osgi.framework.launch.FrameworkFactory > The shaded service implementation class looks as follows: > {code:java} > org.eclipse12341234.osgi.launch.EquinoxFactory > {code} > It appears that shadedPattern was applied twice. -- This message was sent by Atlassian Jira (v8.3.4#803005)