[MSHADE-454] Shade Plugin does not work with JDK 20 (original) (raw)

We are trying to use JDK 20 and this was the only plugin we had to work-around because it would not work. Are there plans to update this plugin to support JDK 20+? Is there a work-around until changes are made?

Our current work-around is using assembly plugin, but we use shade plugin in many of the apps we are migrating and our preference is to continue to use Shade-plugin.

Currently- if you try to use shade plugin with JDK 20, you get : Unsupported class file major version 64

Error creating shaded jar: Unsupported class file major version 64     at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:333)     at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)     at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)     at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)     at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)     at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)     at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)     at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)     at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)     at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)     at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:104)     at java.lang.reflect.Method.invoke (Method.java:578)     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)     at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)     at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348) Caused by: org.apache.maven.plugin.MojoExecutionException: Error creating shaded jar: Unsupported class file major version 64     at org.apache.maven.plugins.shade.mojo.ShadeMojo.execute (ShadeMojo.java:624)     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)     at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)     at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)     at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)     at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)     at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)     at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)     at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)     at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)     at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)     at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)     at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:104)     at java.lang.reflect.Method.invoke (Method.java:578)     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)     at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)     at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348) Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 64     at org.vafer.jdeb.shaded.objectweb.asm.ClassReader. (ClassReader.java:199)     at org.vafer.jdeb.shaded.objectweb.asm.ClassReader. (ClassReader.java:180)     at org.vafer.jdeb.shaded.objectweb.asm.ClassReader. (ClassReader.java:166)     at org.vafer.jdeb.shaded.objectweb.asm.ClassReader. (ClassReader.java:287)     at org.vafer.jdependency.Clazzpath.addClazzpathUnit (Clazzpath.java:178)     at org.vafer.jdependency.Clazzpath.addClazzpathUnit (Clazzpath.java:151)     at org.apache.maven.plugins.shade.filter.MinijarFilter. (MinijarFilter.java:104)     at org.apache.maven.plugins.shade.mojo.ShadeMojo.getFilters (ShadeMojo.java:919)     at org.apache.maven.plugins.shade.mojo.ShadeMojo.execute (ShadeMojo.java:482)     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)     at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)     at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)     at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)     at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)     at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)     at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)     at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)     at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)     at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)     at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)     at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)     at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:104)     at java.lang.reflect.Method.invoke (Method.java:578)     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)     at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)     at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)