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

使用sbt与IntelliJ构建Scala JAR的体积差异及配置优化咨询

问题分析与解决方法

为什么IntelliJ构建的JAR体积这么大?

这主要是因为IntelliJ默认的构建方式(比如直接使用「Build Artifacts」功能)会把所有依赖库(包括Scala标准库、第三方依赖)都打包到JAR里,而你用sbt clean package命令构建的是「瘦JAR(thin JAR)」——只包含你自己编写的代码,依赖项不会被打包进去。毕竟StreamSets和Spark运行环境本身已经提供了这些基础依赖,所以两者都能正常运行,但体积差得特别多。

如何配置IntelliJ构建小体积的JAR?

最省心的方式是直接复用sbt的构建逻辑,和命令行效果完全一致:

  • 打开IntelliJ右侧的sbt面板(如果没显示,可通过View > Tool Windows > sbt调出)
  • 展开你的项目节点,找到Tasks > package,右键选择「Run」即可
  • 构建完成后,小体积JAR会生成在target/scala-<你的Scala版本>目录下

如果一定要用IntelliJ的Artifact功能构建,需要手动配置只打包自己的代码:

  1. 打开File > Project Structure > Artifacts
  2. 点击左上角的+,选择JAR > Empty,给这个Artifact起个辨识度高的名字
  3. 在右侧「Available Elements」区域,找到项目编译后的class文件(sbt项目通常是target/scala-<版本>/classes,普通Scala项目则是out/production/classes),右键选择「Put into Root」
  4. 务必不要添加任何依赖库(比如Scala标准库、第三方JAR)到Artifact中
  5. 点击「OK」后,回到主界面选择Build > Build Artifacts,选中刚才创建的Artifact执行构建,就能得到仅包含自身代码的小体积JAR

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 10:06:24