build scala项目时出现:org.jetbrains.jps.incremental.scala.remote.ServerException

本文探讨了在使用Maven构建Scala项目时遇到的StackOverflowError问题,分析了可能的原因,包括JDK与Scala版本冲突、代码中递归过深及case class字段过多等问题,并提供了排查和解决方案。

build项目时出现:org.jetbrains.jps.incremental.scala.remote.ServerException

或者打包时出现以下情况:

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building bdjob 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ bdjob ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] 
[INFO] --- scala-maven-plugin:3.2.2:add-source (scala-compile-first) @ bdjob ---
[INFO] Add Source directory: E:\workspace\xxx\src\main\scala
[INFO] Add Test Source directory: E:\workspace\xxx\src\test\scala
[INFO] 
[INFO] --- scala-maven-plugin:3.2.2:compile (scala-compile-first) @ bdjob ---
[WARNING]  Expected all dependencies to require Scala version: 2.11.0
[WARNING]  com.twitter:chill_2.11:0.8.4 requires scala version: 2.11.8
[WARNING] Multiple versions of scala libraries detected!
[INFO] E:\workspace\xxx\src\main\java:-1: info: compiling
[INFO] E:\workspace\xxx\src\main\scala:-1: info: compiling
[INFO] Compiling 10 source files to E:\workspace\xxx\target\classes at 1571638690784
[ERROR] error: java.lang.StackOverflowError
[INFO] 	at scala.tools.nsc.typechecker.Typers$Typer.runTyper$1(Typers.scala:5293)
[INFO] 	at scala.tools.nsc.typechecker.Typers$Typer.scala$tools$nsc$typechecker$Typers$Typer$$typedInternal(Typers.scala:5330)

可以从以下几个方面进行考虑:

  1. jdk与scala版本是否冲突
  2. 代码中是否存在递归过深的情况
  3. case class的字段是否过多
scala: Error: Error compiling the sbt component 'compiler-bridge-2.12.11-68.0.jar' sbt.internal.inc.CompileFailed: Error compiling the sbt component 'compiler-bridge-2.12.11-68.0.jar' at sbt.internal.inc.AnalyzingCompiler$.handleCompilationError$1(AnalyzingCompiler.scala:436) at sbt.internal.inc.AnalyzingCompiler$.$anonfun$compileSources$5(AnalyzingCompiler.scala:453) at sbt.internal.inc.AnalyzingCompiler$.$anonfun$compileSources$5$adapted(AnalyzingCompiler.scala:448) at sbt.io.IO$.withTemporaryDirectory(IO.scala:496) at sbt.io.IO$.withTemporaryDirectory(IO.scala:506) at sbt.internal.inc.AnalyzingCompiler$.$anonfun$compileSources$2(AnalyzingCompiler.scala:448) at sbt.internal.inc.AnalyzingCompiler$.$anonfun$compileSources$2$adapted(AnalyzingCompiler.scala:440) at sbt.io.IO$.withTemporaryDirectory(IO.scala:496) at sbt.io.IO$.withTemporaryDirectory(IO.scala:506) at sbt.internal.inc.AnalyzingCompiler$.compileSources(AnalyzingCompiler.scala:440) at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl$.org$jetbrains$jps$incremental$scala$local$CompilerFactoryImpl$$getOrCompileInterfaceJar(CompilerFactoryImpl.scala:192) at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.$anonfun$getScalac$2(CompilerFactoryImpl.scala:86) at scala.Option.getOrElse(Option.scala:201) at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.$anonfun$getScalac$1(CompilerFactoryImpl.scala:80) at scala.Option.map(Option.scala:242) at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.getScalac(CompilerFactoryImpl.scala:71) at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.createCompiler(CompilerFactoryImpl.scala:20) at org.jetbrains.jps.incremental.scala.local.CachingFactory.$anonfun$createCompiler$1(CachingFactory.scala:17) at org.jetbrains.jps.incremental.scala.local.Cache.compute(Cache.scala:74) at org.jetbrains.jps.incremental.scala.local.Cache.getOrUpdate(Cache.scala:63) at org.jetbrains.jps.incremental.scala.local.CachingFactory.createCompiler(CachingFactory.scala:16) at org.jetbrains.jps.incremental.scala.local.LocalServer.doCompile(LocalServer.scala:40) at org.jetbrains.jps.incremental.scala.local.LocalServer.compile(LocalServer.scala:28) at org.jetbrains.jps.incremental.scala.remote.Main$.compileLogic(Main.scala:209) at org.jetbrains.jps.incremental.scala.remote.Main$.$anonfun$handleCommand$1(Main.scala:190) at org.jetbrains.jps.incremental.scala.remote.Main$.decorated$1(Main.scala:177) at org.jetbrains.jps.incremental.scala.remote.Main$.handleCommand(Main.scala:187) at org.jetbrains.jps.incremental.scala.remote.Main$.serverLogic(Main.scala:160) at org.jetbrains.jps.incremental.scala.remote.Main$.nailMain(Main.scala:100) at org.jetbrains.jps.incremental.scala.remote.Main.nailMain(Main.scala) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:565) at com.facebook.nailgun.NGSession.runImpl(NGSession.java:312) at com.facebook.nailgun.NGSession.run(NGSession.java:198)
06-19
Error:scalac: Error: Error compiling the sbt component 'compiler-interface-2.10.0-52.0' sbt.internal.inc.CompileFailed: Error compiling the sbt component 'compiler-interface-2.10.0-52.0' at sbt.internal.inc.AnalyzingCompiler$.handleCompilationError$1(AnalyzingCompiler.scala:331) at sbt.internal.inc.AnalyzingCompiler$.$anonfun$compileSources$4(AnalyzingCompiler.scala:346) at sbt.internal.inc.AnalyzingCompiler$.$anonfun$compileSources$4$adapted(AnalyzingCompiler.scala:341) at sbt.io.IO$.withTemporaryDirectory(IO.scala:376) at sbt.io.IO$.withTemporaryDirectory(IO.scala:383) at sbt.internal.inc.AnalyzingCompiler$.$anonfun$compileSources$2(AnalyzingCompiler.scala:341) at sbt.internal.inc.AnalyzingCompiler$.$anonfun$compileSources$2$adapted(AnalyzingCompiler.scala:335) at sbt.io.IO$.withTemporaryDirectory(IO.scala:376) at sbt.io.IO$.withTemporaryDirectory(IO.scala:383) at sbt.internal.inc.AnalyzingCompiler$.compileSources(AnalyzingCompiler.scala:335) at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl$.org$jetbrains$jps$incremental$scala$local$CompilerFactoryImpl$$getOrCompileInterfaceJar(CompilerFactoryImpl.scala:123) at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.$anonfun$getScalac$1(CompilerFactoryImpl.scala:55) at scala.Option.map(Option.scala:163) at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.getScalac(CompilerFactoryImpl.scala:47) at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.createCompiler(CompilerFactoryImpl.scala:25) at org.jetbrains.jps.incremental.scala.local.CachingFactory.$anonfun$createCompiler$3(CachingFactory.scala:24) at org.jetbrains.jps.incremental.scala.local.Cache.$anonfun$getOrUpdate$2(Cache.scala:20) at scala.Option.getOrElse(Option.scala:138) at org.jetbrains.jps.incremental.scala.local.Cache.getOrUpdate(Cache.scala:19) at org.jetbrains.jps.incremental.scala.local.CachingFactory.createCompiler(CachingFactory.scala:24) at org.jetbrains.jps.incremental.scala.local.LocalServer.compile(LocalServer.scala:34) at org.jetbrains.jps.incremental.scala.remote.Main$.compileLogic(Main.scala:117) at org.jetbrains.jps.incremental.scala.remote.Main$.handleCommand(Main.scala:109) at org.jetbrains.jps.incremental.scala.remote.Main$.serverLogic(Main.scala:95) at org.jetbrains.jps.incremental.scala.remote.Main$.nailMain(Main.scala:53) at org.jetbrains.jps.incremental.scala.remote.Main.nailMain(Main.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.martiansoftware.nailgun.NGSession.run(NGSession.java:319)
08-15
scalac: Error: C:\Users\��Ϊ\AppData\Roaming\JetBrains\IdeaIC2022.2\plugins\Scala\lib\jps\compiler-interface-sources-2.11.jar (系统找不到指定的路径。) java.io.FileNotFoundException: C:\Users\��Ϊ\AppData\Roaming\JetBrains\IdeaIC2022.2\plugins\Scala\lib\jps\compiler-interface-sources-2.11.jar (系统找不到指定的路径。) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(FileInputStream.java:195) at java.io.FileInputStream.<init>(FileInputStream.java:138) at sbt.io.Using$.$anonfun$fileInputStream$1(Using.scala:98) at sbt.io.Using$$anon$3.openImpl(Using.scala:86) at sbt.io.OpenFile.open(Using.scala:53) at sbt.io.OpenFile.open$(Using.scala:47) at sbt.io.Using$$anon$3.open(Using.scala:85) at sbt.io.Using$$anon$3.open(Using.scala:85) at sbt.io.Using.apply(Using.scala:25) at sbt.io.IO$.unzip(IO.scala:375) at sbt.internal.inc.AnalyzingCompiler$.$anonfun$compileSources$3(AnalyzingCompiler.scala:444) at scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:169) at scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:165) at scala.collection.immutable.List.foldLeft(List.scala:79) at sbt.internal.inc.AnalyzingCompiler$.$anonfun$compileSources$2(AnalyzingCompiler.scala:443) at sbt.internal.inc.AnalyzingCompiler$.$anonfun$compileSources$2$adapted(AnalyzingCompiler.scala:440) at sbt.io.IO$.withTemporaryDirectory(IO.scala:490) at sbt.io.IO$.withTemporaryDirectory(IO.scala:500) at sbt.internal.inc.AnalyzingCompiler$.compileSources(AnalyzingCompiler.scala:440) at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl$.org$jetbrains$jps$incremental$scala$local$CompilerFactoryImpl$$getOrCompileInterfaceJar(CompilerFactoryImpl.scala:163) at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.$anonfun$getScalac$1(CompilerFactoryImpl.scala:61) at scala.Option.map(Option.scala:242) at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.getScalac(CompilerFactoryImpl.scala:54) at org.jetbrains.jps.incremental.scala.local.CompilerFactoryImpl.createCompiler(CompilerFactoryImpl.scala:23) at org.jetbrains.jps.incremental.scala.local.CachingFactory.$anonfun$createCompiler$3(CachingFactory.scala:24) at org.jetbrains.jps.incremental.scala.local.Cache.$anonfun$getOrUpdate$2(Cache.scala:20) at scala.Option.getOrElse(Option.scala:201) at org.jetbrains.jps.incremental.scala.local.Cache.getOrUpdate(Cache.scala:19) at org.jetbrains.jps.incremental.scala.local.CachingFactory.createCompiler(CachingFactory.scala:24) at org.jetbrains.jps.incremental.scala.local.LocalServer.doCompile(LocalServer.scala:43) at org.jetbrains.jps.incremental.scala.local.LocalServer.compile(LocalServer.scala:30) at org.jetbrains.jps.incremental.scala.remote.Main$.compileLogic(Main.scala:209) at org.jetbrains.jps.incremental.scala.remote.Main$.$anonfun$handleCommand$1(Main.scala:192) at org.jetbrains.jps.incremental.scala.remote.Main$.decorated$1(Main.scala:182) at org.jetbrains.jps.incremental.scala.remote.Main$.handleCommand(Main.scala:189) at org.jetbrains.jps.incremental.scala.remote.Main$.serverLogic(Main.scala:165) at org.jetbrains.jps.incremental.scala.remote.Main$.nailMain(Main.scala:105) at org.jetbrains.jps.incremental.scala.remote.Main.nailMain(Main.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.facebook.nailgun.NGSession.runImpl(NGSession.java:312) at com.facebook.nailgun.NGSession.run(NGSession.java:198)
最新发布
10-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值