java - 构建 Play 2.6 java 项目时的 Scala java.lang.StackOverflowError
问题描述
我已将我的项目迁移到 Play 2.6.18。Scala 版本是 2.12.6。当我运行“sbt compile”或“sbt update”或“sbt run”时,我得到以下异常:
[info] Installing the s3:// URLStreamHandler via java.net.URL.setURLStreamHandlerFactory
[info] Creating a new Ivy URLHandlerDispatcher to handle s3:// URLs
java.lang.StackOverflowError
at scala.reflect.internal.Types$TypeMap.mapOver(Types.scala:4216)
at scala.reflect.internal.Types$SubstMap.apply(Types.scala:4672)
at scala.reflect.internal.Types$TypeMap.mapOver(Types.scala:4221)
at scala.reflect.internal.Types$SubstMap.apply(Types.scala:4672)
at scala.reflect.internal.Types$SubstMap.apply(Types.scala:4643)
at scala.collection.immutable.List.loop$1(List.scala:170)
at scala.collection.immutable.List.mapConserve(List.scala:186)
at scala.reflect.internal.Types$TypeMap.mapOver(Types.scala:4184)
at scala.reflect.internal.Types$SubstMap.apply(Types.scala:4672)
at scala.reflect.internal.Types$Type.subst(Types.scala:796)
at scala.reflect.internal.Types$Type.instantiateTypeParams(Types.scala:572)
at scala.reflect.internal.Types$ExistentialType.withTypeVars(Types.scala:2848)
at scala.reflect.internal.Types$class.thirdTry$1(Types.scala:6150)
at scala.reflect.internal.Types$class.secondTry$1(Types.scala:6109)
at scala.reflect.internal.Types$class.firstTry$1(Types.scala:6085)
at scala.reflect.internal.Types$class.isSubType2(Types.scala:6228)
at scala.reflect.internal.Types$class.isSubType(Types.scala:5837)
at scala.reflect.internal.SymbolTable.isSubType(SymbolTable.scala:13)
at scala.reflect.internal.Types$Type.$less$colon$less(Types.scala:872)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.loop$1(Implicits.scala:595)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.checkCompatibility(Implicits.scala:597)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.normSubType(Implicits.scala:374)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.matchesPt(Implicits.scala:513)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.scala$tools$nsc$typechecker$Implicits$ImplicitSearch$$matchesPt(Implicits.scala:525)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.survives(Implicits.scala:855)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation$$anonfun$15$$anonfun$16.apply(Implicits.scala:909)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation$$anonfun$15$$anonfun$16.apply(Implicits.scala:909)
at scala.collection.TraversableLike$$anonfun$filter$1.apply(TraversableLike.scala:264)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.TraversableLike$class.filter(TraversableLike.scala:263)
at scala.collection.AbstractTraversable.filter(Traversable.scala:105)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation$$anonfun$15.apply(Implicits.scala:909)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation$$anonfun$15.apply(Implicits.scala:908)
at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:251)
at scala.collection.AbstractTraversable.flatMap(Traversable.scala:105)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch$ImplicitComputation.<init>(Implicits.scala:908)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:1040)
at scala.tools.nsc.typechecker.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1409)
at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:82)
at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:493)
at scala.tools.nsc.typechecker.Implicits$class.inferImplicit(Implicits.scala:40)
at scala.tools.nsc.Global$$anon$1.inferImplicit(Global.scala:493)
at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$wrapImplicit$1(Typers.scala:202)
at scala.tools.nsc.typechecker.Typers$Typer.inferView(Typers.scala:209)
at scala.tools.nsc.typechecker.Typers$Typer.inferView(Typers.scala:180)
at scala.tools.nsc.typechecker.Typers$Typer.fallBack$1(Typers.scala:1201)
at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1283)
at scala.tools.nsc.typechecker.Typers$Typer.fallBack$1(Typers.scala:1274)
at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1283)
at scala.tools.nsc.typechecker.Typers$Typer.fallBack$1(Typers.scala:1274)
at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1283)
at scala.tools.nsc.typechecker.Typers$Typer.fallBack$1(Typers.scala:1274)
at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1283)
at scala.tools.nsc.typechecker.Typers$Typer.fallBack$1(Typers.scala:1274)
at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1283)
at scala.tools.nsc.typechecker.Typers$Typer.fallBack$1(Typers.scala:1274)
at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1283)
at scala.tools.nsc.typechecker.Typers$Typer.fallBack$1(Typers.scala:1274)
at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1283)
at scala.tools.nsc.typechecker.Typers$Typer.fallBack$1(Typers.scala:1274)
at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1283)
at scala.tools.nsc.typechecker.Typers$Typer.fallBack$1(Typers.scala:1274)
at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1283)
at scala.tools.nsc.typechecker.Typers$Typer.fallBack$1(Typers.scala:1274)
at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1283)
at scala.tools.nsc.typechecker.Typers$Typer.fallBack$1(Typers.scala:1274)
....
我试图通过在项目根目录中创建 .jvmopts 和 .sbtopts 文件来增加堆栈大小,-Xss2M
并添加javaOptions in compile += "-Xss2048K"
到 build.sbt 但没有任何帮助。还有什么可以做的?
解决方案
有时没有足够的内存来编译项目,这个命令会解决它:
export SBT_OPTS="-XX:+CMSClassUnloadingEnabled -Xmx8G"
推荐阅读
- excel - 保持行连接到单独工作表上的链接列
- loopbackjs - 如何在控制器方法中注入请求级上下文
- c# - 如何在实体框架中使用具有相同外键的多个表
- python - 我更新了 scikit.learn 但我仍然收到此错误:ModuleNotFoundError: No module named 'sklearn.cross_validation'
- postman - 如何在 URL 中调用 Postman 更改值的许多结果?
- python - 如何解释用户名的变化
- c - 在 makefile 中使用 %.o : %.c
- spring - 如何通过 Java 中的列名从 query.list() 中获取值
- javascript - 使用 jQuery 滚动而不使用 animate()
- php - Opencart 以编程方式删除订单