增加sbt-assembly中的内存

时间:2015-06-11 21:33:31

标签: scala sbt sbt-assembly

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

这是错误:

  

java.util.concurrent.ExecutionException:java.lang.OutOfMemoryError:Java堆空间

这是我没有太多运气的尝试:

javaOptions in assembly += "-Xmx2g"

4 个答案:

答案 0 :(得分:5)

  

我怀疑程序集正在分支一个单独的JVM,它不会从sbt继承JVM配置。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我之前也遇到过同样的问题,请按以下说明在Windows中进行操作。问题可能消失了。

set SBT_OPTS="-Xmx2G"
sbt assembly

答案 3 :(得分:0)

您可以在Linux环境中使用以下命令增加堆大小:-

sbt -J-Xms2048m -J-Xmx2048m assembly