maven-shade-plugin插件打包异常解决方案

异常提示如下:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.4.3:shade (default) on project spark-workcount: Error creating shaded jar: invalid LOC header (bad signature) -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

这种情况是打包时相关jar包没下载完整,可以看到关键错误信息是:

invalid LOC header (bad signature)

并且给出了解决方案:

Re-run Maven using the -X switch to enable full debug logging.

意思是重新运行下-X查看完整DEBUG日志信息。
只需要在Terminal窗口执行mvn -X package即可,如下:
在这里插入图片描述
mvn -X package是mvn 命令,其中-X代表DEBUG模式,有兴趣的同学可以深入了解下。
当然,这个Terminal终端相当于cmd黑窗,也可以在黑窗的同样目录下执行这个mvn指令,效果相同。

黑窗操作步骤:win+r -> cmd -> cd /d +(最后一个debug的路径)

在这里插入图片描述
当时没截图,这个是我已经处理好后重新做的图。正常最后一个DEBUG后面跟的就是jar包下载有误的路径,找到那个路径,发现有一个-in-progress文件,说明确实是没有下完。删除全部文档,重新打包下载即可。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven Shade Plugin 是 Maven 的一个件,主要用于解决 Java 项目中的依赖问题。它的作用是将所有依赖库打包到一个可执行的 JAR 包中,以避免因为缺少依赖库而导致的运行错误。 Maven Shade Plugin 的主要功能包括: - 将所有的依赖库打包到一个 JAR 包中,避免运行时缺少依赖库; - 可以对依赖库进行重命名,避免不同依赖库之间的命名冲突; - 可以对资源文件进行过滤和重定向,以解决资源文件冲突或者版本不兼容的问题。 使用 Maven Shade Plugin 打包 JAR 包的步骤如下: 1. 在 pom.xml 文件中添加 Maven Shade Plugin 的依赖。 ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.2.0</version> </plugin> </plugins> </build> ``` 2. 配置 Maven Shade Plugin,包括输出文件名、重命名规则、过滤规则等。 ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.2.0</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <finalName>my-application</finalName> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> <relocations> <relocation> <pattern>org.apache.commons</pattern> <shadedPattern>myapp.org.apache.commons</shadedPattern> </relocation> </relocations> </configuration> </execution> </executions> </plugin> </plugins> </build> ``` 其中,`finalName` 指定输出文件名,`filters` 指定过滤规则,`relocations` 指定重命名规则。具体规则可以参考 Maven Shade Plugin 的官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值