我有以下具有大量参数的案例类(150)在使用sbt(版本0.14)编译期间导致java.lang.StackOverflowError异常:
类定义:
case class TestClass(Param1:String,Param2:String,Param3:String,...,Param150:String)
sbt编译期间的异常:
[info] Compiling 1 Scala source to C:\spark-2.2.0-bin-hadoop2.7\ImportSyncPuffDataApp\target\scala-2.11\classes...
java.lang.StackOverflowError
at scala.tools.nsc.typechecker.Contexts$Context.bufferErrors(Contexts.scala:332)
at scala.tools.nsc.typechecker.Contexts$Context.reportErrors(Contexts.scala:333)
...
at scala.tools.nsc.typechecker.Typers$Typer.silent(Typers.scala:680)
at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4524)
[error] (compile:compileIncremental) java.lang.StackOverflowError
如果将参数数量减少到115,则可以正常工作。我该如何解决这个限制?
答案 0 :(得分:0)
通过添加以下内容来提供更大的jvm堆栈空间(默认为1M):
-Xss2M
在Windows平台上,它应该在%SBT_HOME%\conf\sbtconfig.txt
答案 1 :(得分:0)
使用sbt命令行(通过JVM参数)增加堆栈大小:
sbt -J-Xss2M -J-Xmx2G