scala - 如何配置 SBT 为依赖项和应用程序代码生成单独的 jar?

标签 scala sbt sbt-assembly

我使用 SBT 作为 Spark 项目的构建工具。我可以使用 sbt-assemble 插件创建一个包含依赖项的 fat jar。

但是,这会生成约 120M 的 jar,其中大部分是我需要不断上传到 S3 才能运行代码的依赖项 - 这需要 3-5 分钟才能完成。时间不多,但相当烦人。

让 SBT 生成一个依赖项的 jar(很少更改)和一个我的应用程序代码的小 jar,我应该能够在几秒钟内上传,这将大大改善事情。

这可能吗?我对 SBT 还很陌生。

最佳答案

sbt-assemble 支持开箱即用 splitting project application jar from dependency jar 。要仅生成依赖项 jar,请执行

sbt assemblyPackageDependency

要仅使用项目应用程序代码生成 jar,请定义 assemblyOption 如下

assemblyOption in assembly := (assemblyOption in assembly).value.copy(includeScala = false, includeDependency = false)

并照常执行sbt assembly

关于scala - 如何配置 SBT 为依赖项和应用程序代码生成单独的 jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55266538/

相关文章:

scala - 编译后 SBT 应用任务

scala - 当案例类字段是带反引号的保留 java 关键字时,spark-submit 失败

scala - Play2 和 Scala,我应该如何配置集成测试以使用正确的数据库运行

scala - chisel 如何连接到这样的端口?

scala - 将带有子项目的SBT项目作为单个Maven工件发布

scala - 为什么生成的 list 中没有 Main-Class 属性?

android - 将 sbt-assembly 用于 Newman,StackMob 的 Http 客户端库

Scala获取ArrayBuffer的第一个满足条件的元素

scala - 在scala中将文件的内容存储在不可变的Map中

scala - SBT 与 Maven Central - 在工件 url 中删除 Scala 版本