在构建时(使用compile或test:compile),我收到此错误:
[info] [specializing CorrelationDal.scala]
[error] {file:/home/bamboo/.../}batch/compile:compile: java.lang.StackOverflowError
[error] Total time: 20 s, completed Feb 28, 2012 7:32:08 AM
正如您所知,我在scalacOption键中设置了'-verbose'选项。
我决定尝试使用以下方法为编译过程提供更大的堆栈大小:
(fork := true) ++ (javaOptions += "-Xss4G")
但这没有改变。
我已经尝试检查我对CorrelationDal.scala所做的更改,并尝试放宽它需要做的推理量(明确注意类型,删除可迭代的链式创建等),但我可以'在没有内部理解Scala编译器的情况下,确实告诉了哪些是罪魁祸首。
有没有人知道如何解决问题的核心?
答案 0 :(得分:6)
在sbt脚本文件中添加-Xss2M之后,就可以了。
答案 1 :(得分:2)
原来这是字符串连接的问题。如果连接太多字符串,如下所示:
"string" + "other string" + variable + "string" + ...
你会明白的。我假设这是因为编译器中的类型推断机制只是尝试太多。希望它将在未来版本中修复(我正在使用2.9.1 ...)
答案 2 :(得分:1)
该参数毫无意义 - 您没有运行,只是编译。
您必须更改SBT本身的堆栈大小。只需编辑sbt
脚本并进行更改即可。