我正在尝试使用Gradle在IntelliJ上构建一个Scala项目。我能够使编译保持失败,堆栈溢出错误。
我查看了其他类似问题的帖子,这些问题表明堆/堆大小增加(this和this)。到目前为止,我已尝试在JAVA_OPTS和idea64.exe.vmoptions中设置它们。
-Xss512m -Xms512m -Xmx2048m -XX:ReservedCodeCacheSize = 64m -ea
我也尝试过包含-XX:MaxPermSize = 2048m,它们也不起作用(相信它在Java 8中不受支持)。
为具有相同配置的其他人构建相同的代码。任何人都可以对我所缺少的内容有所了解吗?
详细说明:
IntelliJ Ultimate 2016.1
Scala 2.10.3
Java 1.8.0_92
堆栈追踪:
java.lang.StackOverflowError
at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:696)
at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)
at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5370)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5374)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$96.apply(Typers.scala:4523)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$96.apply(Typers.scala:4523)
at scala.tools.nsc.typechecker.Typers$Typer.silent(Typers.scala:680)
at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4522)
at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4578)
at scala.tools.nsc.typechecker.Typers$Typer.typedInAnyMode$1(Typers.scala:5343)
at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:5360)
at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:696)
at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)
at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5370)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5374)
at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:5472)
at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:5480)
at scala.tools.nsc.transform.Erasure$Eraser.adaptMember(Erasure.scala:642)
at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:696)
at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5396)
at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5423)
at scala.tools.nsc.typechecker.Typers$Typer.body$2(Typers.scala:5370)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5374)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$96.apply(Typers.scala:4523)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$96.apply(Typers.scala:4523)
at scala.tools.nsc.typechecker.Typers$Typer.silent(Typers.scala:680)
at scala.tools.nsc.typechecker.Typers$Typer.normalTypedApply$1(Typers.scala:4522)
at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:4578)
答案 0 :(得分:10)
异常来自编译器。您需要在构思配置中更改编译器构建过程堆大小。 转到
File -> Settings -> Build,Excetion,Deployment -> Compiler -> Build process
heap size(Mbytes)
将此属性增加到更高的值。应该解决此问题。
答案 1 :(得分:1)
在我的情况下在eclipse.ini中添加-Xss100m,可能在intellijJ中添加类似的属性可能会有所帮助。
答案 2 :(得分:1)
我已经通过以下方式解决了此问题:
首选项->构建,执行,部署->编译器-> Scala编译器-> Scala编译服务器
并更新了JVM选项以使用更大的堆栈大小,例如:-Xss8m
重新启动以使更改生效。
答案 3 :(得分:1)
这对我有用:
来自 Windows Powershell,$env:SBT_OPTS="-Xss1024m" 然后运行 sbt compile
也在 IntelliJ v2020.2 中,以下也有效: 设置 -> 构建、执行、部署 -> 构建工具 -> SBT -> JVM:VM 参数:-Xss1024m
答案 4 :(得分:0)
我遇到了同样的问题,并在 intellij 中做了很多更改,但没有一个有效。
我从我的代码及其工作中删除了 unused case classes