[ 
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)

Reply via email to