Clément MATHIEU created MSHADE-302: --------------------------------------
Summary: 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 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)