设置SBT

时间:2016-08-02 07:20:28

标签: scala sbt

我使用专门构建的Scala运行SBT。我构建的Scala编译器会在运行时执行很多操作,有很多函数调用,可以是递归的。

因此,当我使用我的内置Scala编译器运行SBT时,堆栈会在很长一段时间后溢出。我尝试在启动SBT时设置-J-Xss。但这不起作用。

我之前遇到过SBT堆大小的问题。很多帖子说在启动SBT时设置-J-Xmx不会改变JVM堆大小,因为它被默认的SBT内存选项覆盖。 How to set heap size for sbt?

现在,我想知道-J-Xss是否可以被默认的SBT选项覆盖,就像-J-Xmx被覆盖一样。或者我应该尝试将-J-Xss设置得更大?

1 个答案:

答案 0 :(得分:1)

有很多方法可以做到这一点,但这取决于你想要实现的目标。例如,如果您想要更大的堆来运行测试,请查看此处采用的辅助方法。

<强> SBT_OPTS

首先,您可以设置环境变量SBT_OPTS,SBT在加载时本身会查找该环境变量export SBT_OPTS = "-Xmx1G;-Xms256m;..."; ,这应该覆盖您要指定的任何设置。

javaOptions in ThisBuild ++= Seq("-Xmx1g", ...)

自定义启动器

实现同样目的的另一种方法是基本上创建一个自定义SBT启动脚本。看看示例here

进行测试

如果要修改测试选项,则需要使用fork in Test := true。为了让它们甚至可以运行,你总是需要"Total money: ([0-9]*) ID: (.*) Name: (.*) Age: ([0-9]*)"; ,这将创建一个用于运行测试的分叉JVM。如果没有这个,指定的选项就不会受到尊重。

相关问题