创建着色 jar 时出错:null:IllegalArgumentException

Error creating shaded jar: null: IllegalArgumentException

提问人:Some Name 提问时间:3/23/2018 更新时间:4/6/2020 访问量:12551

问:

我在我的项目中使用 ASM 6.1 动态生成类文件。但是我在组装一个胖罐子时遇到了一个问题。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.4.3:shade (default-cli) on project uetlx: Error creating shaded jar: null: IllegalArgumentException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.4.3:shade (default-cli) on project uetlx: Error creating shaded jar: null
        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.MojoExecutionException: Error creating shaded jar: null
        at org.apache.maven.plugins.shade.mojo.ShadeMojo.execute(ShadeMojo.java:540)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
        ... 20 more
Caused by: java.lang.IllegalArgumentException
        at org.objectweb.asm.ClassReader.<init>(Unknown Source)
        at org.objectweb.asm.ClassReader.<init>(Unknown Source)
        at org.objectweb.asm.ClassReader.<init>(Unknown Source)
        at org.apache.maven.plugins.shade.DefaultShader.addRemappedClass(DefaultShader.java:415)
        at org.apache.maven.plugins.shade.DefaultShader.shadeSingleJar(DefaultShader.java:219)
        at org.apache.maven.plugins.shade.DefaultShader.shadeJars(DefaultShader.java:179)
        at org.apache.maven.plugins.shade.DefaultShader.shade(DefaultShader.java:104)
        at org.apache.maven.plugins.shade.mojo.ShadeMojo.execute(ShadeMojo.java:454)
        ... 22 more

这是什么意思?一些令人困惑的版本?解决方案是什么?objectweb.asm

java maven-shade-plugin

评论

6赞 khmarbaise 3/23/2018
首先,为什么要使用如此旧版本的 maven-shade-plugin?此外,您在哪个JDK上运行?
2赞 Some Name 3/23/2018
@khmarbaise 正如您所猜测的那样,问题原来出在旧的插件版本上。谢谢。
1赞 Shlomi Király 7/25/2018
遇到了同样的问题。升级 Maven shade 插件版本解决了这个问题。谢谢!
2赞 juhoautio 8/31/2018
谢谢。3.1.0 版对我有用,issues.apache.org/jira/browse/MSHADE-255

答:

26赞 mrog 2/7/2020 #1

我在 2.4.3 版中遇到了同样的问题。升级到最新版本的插件(当前为 3.2.1)就可以解决了这个问题。

评论

7赞 Vishrant 3/13/2020
我在升级它以解决它时遇到了问题。3.0.03.2.1
0赞 Rik Schaaf 2/12/2022
我在使用 java 17 时遇到了问题并升级到3.1.03.3.0-SNAPSHOT
0赞 Soundararajan 8/18/2022
当 minimizeJar 与 shade 一起使用时,带有 2.x 的版本似乎失败了。3.x 版本似乎很好
1赞 TasMot 4/6/2020 #2

只是为了堆积,升级到最新版本的插件也为我解决了这个问题。我的问题是我发现的示例使用了旧版本,我没有考虑升级它,只是获得配置来解决我的问题。现在我会更加认真地寻找最新的升级和新的配置。