[ https://issues.apache.org/jira/browse/MSHADE-302?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16657512#comment-16657512 ]
Clément MATHIEU commented on MSHADE-302: ---------------------------------------- Jdependency maintainer just pushed a fix which fix my test case (while asm 7.0 was in the classpath, jdependency forgot to switch to opcodes 7). I will test that more thoroughly next week and submit a patch as soon as a new jdependency version is released. > maven-shade-plugin fails to minimize JAR with Java 11 > ----------------------------------------------------- > > Key: MSHADE-302 > URL: https://issues.apache.org/jira/browse/MSHADE-302 > Project: Maven Shade Plugin > Issue Type: Bug > Environment: maven-shade-plugin 3.2.1-SNAPSHOT or master branch. > openjdk version "11" 2018-09-25 > OpenJDK Runtime Environment 18.9 (build 11+28) > OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode) > Reporter: Clément MATHIEU > Priority: Major > > While checking whether maven-shade-plugin is Java 11 compatible or not, I > noticed that it fails when minimizeJar is set to true and a class contains a > nested static class. > I was able to reproduce the issue by patching the > shading-with-java-11-sources integration test: > {code} > diff --git a/src/it/shading-with-java-11-sources/pom.xml > b/src/it/shading-with-java-11-sources/pom.xml > index 0ea23fe..34898b7 100644 > --- a/src/it/shading-with-java-11-sources/pom.xml > +++ b/src/it/shading-with-java-11-sources/pom.xml > @@ -76,2 +76,3 @@ under the License. > <configuration> > + <minimizeJar>true</minimizeJar> > <shadedArtifactAttached>true</shadedArtifactAttached> > diff --git > a/src/it/shading-with-java-11-sources/src/main/java/org/apache/maven/plugins/shade/its/App.java > > b/src/it/shading-with-java-11-sources/src/main/java/org/apache/maven/plugins/shade/its/App.java > index a92156e..c9fc298 100644 > --- > a/src/it/shading-with-java-11-sources/src/main/java/org/apache/maven/plugins/shade/its/App.java > +++ > b/src/it/shading-with-java-11-sources/src/main/java/org/apache/maven/plugins/shade/its/App.java > @@ -49,2 +49,5 @@ public class App > } > + > + static class Foo { > + } > } > {code} > > Running {{mvn -Prun-its -Dinvoker.test="*java-11*" verify}} leads to the > following exception > {code} > Caused by: java.lang.UnsupportedOperationException: This feature requires ASM7 > at org.objectweb.asm.ClassVisitor.visitNestMember (ClassVisitor.java:236) > at org.objectweb.asm.ClassVisitor.visitNestMember (ClassVisitor.java:239) > at org.objectweb.asm.commons.ClassRemapper.visitNestMember > (ClassRemapper.java:190) > at org.objectweb.asm.ClassReader.accept (ClassReader.java:651) > at org.objectweb.asm.ClassReader.accept (ClassReader.java:391) > at org.vafer.jdependency.Clazzpath.addClazzpathUnit (Clazzpath.java:179) > at org.vafer.jdependency.Clazzpath.addClazzpathUnit (Clazzpath.java:140) > at org.apache.maven.plugins.shade.filter.MinijarFilter.<init> > (MinijarFilter.java:97) > at org.apache.maven.plugins.shade.mojo.ShadeMojo.getFilters > (ShadeMojo.java:834) > at org.apache.maven.plugins.shade.mojo.ShadeMojo.execute > (ShadeMojo.java:434) > at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo > (DefaultBuildPluginManager.java:137) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:208) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:154) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:146) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > (LifecycleModuleBuilder.java:117) > at > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > (LifecycleModuleBuilder.java:81) > at > org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build > (SingleThreadedBuilder.java:56) > at org.apache.maven.lifecycle.internal.LifecycleStarter.execute > (LifecycleStarter.java:128) > at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305) > at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192) > at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105) > at org.apache.maven.cli.MavenCli.execute (MavenCli.java:954) > at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288) > at org.apache.maven.cli.MavenCli.main (MavenCli.java:192) > at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) > at jdk.internal.reflect.NativeMethodAccessorImpl.invoke > (NativeMethodAccessorImpl.java:62) > at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke > (DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke (Method.java:566) > 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) > {code} > I have not yet troubleshooted the issue. Other jdendency users seems to be > facing a similar issue, see https://github.com/tcurdt/jdependency/issues/21. > I have also seen a similar stack trace in Spring SPR-17371. -- This message was sent by Atlassian JIRA (v7.6.3#76005)