有没有办法在程序集(插件)中增加内存?我注意到通过SBT_OPTS向sbt添加更多内存并没有多大帮助。我怀疑程序集正在分支一个单独的JVM,它不会从sbt继承JVM配置。
这是错误:
java.util.concurrent.ExecutionException:java.lang.OutOfMemoryError:Java堆空间
这是我没有太多运气的尝试:
javaOptions in assembly += "-Xmx2g"
答案 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