增加 sbt-assembly 中的内存

Increase memory in sbt-assembly

有没有办法在组装过程中增加内存(插件)?我注意到通过 SBT_OPTS 向 sbt 添加更多内存并没有真正帮助。我怀疑程序集正在分叉一个单独的 JVM,它不从 sbt 继承 JVM 配置。

这里是错误:

java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space

以下是我试过的方法,运气不太好:

javaOptions in assembly += "-Xmx2g"

I suspect that assembly is forking a separate JVM that doesn't inherit the JVM configurations from sbt.

我是 sbt-assembly 的作者。 assembly 不分叉一个单独的 JVM。 您可以在此处查看代码并检查 - https://github.com/sbt/sbt-assembly/blob/0.13.0/src/main/scala/sbtassembly/Assembly.scala#L239-L246

确保导出 SBT_OPTS。我的是“-Xmx2G -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=2G -Xss2M”

我之前也遇到过同样的问题,请windows按如下操作。问题可能消失了。

set SBT_OPTS="-Xmx2G"
sbt assembly

您可以在 linux 环境中使用下面提到的命令来增加堆大小:-

sbt -J-Xms2048m -J-Xmx2048m assembly