[
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, 5:52 PM:
------------------------------------------------------------------
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.
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)