You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SBT Shade插件无法解决Jar重复类问题求助

问题描述

使用SBT构建项目时遇到大量Deduplicate found... error错误,示例错误如下:

[error] Deduplicate found different file contents in the following:
[error]   Jar name = netty-all-4.1.68.Final.jar, jar org = io.netty, entry target = io/netty/handler/ssl/SslProvider.class
[error]   Jar name = netty-handler-4.1.50.Final.jar, jar org = io.netty, entry target = io/netty/handler/ssl/SslProvider.class
...

为解决该问题,我参考资料配置了sbt-assembly的Shade规则,对所有依赖库进行包重命名,但重新加载SBT后执行assembly命令仍出现相同的重复类错误。请问问题出在哪里?

后续解决过程

最终放弃包重命名方案,通过以下方式解决问题:

  • 将Spark依赖标记为provided,避免把Spark相关依赖打包进最终生成的Jar包
  • 调整sbt-assembly的合并策略,处理module-info.class的重复冲突问题
  • 将Spark官方Jar包与项目生成的Jar包放在同一目录(例如./app/),通过指定类路径运行项目:
java -cp "./app/*" main.Main

内容的提问来源于stack exchange,提问作者palandlom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 21:50:18