记录一次scala项目导入编译失败的问题

文章目录

    • Scala项目环境
    • 问题记录
    • 小结

Scala项目环境

Java8
scala-2.11.12
MacBook Apple m2芯片

问题记录

1、scala版本安装
我的本地环境:

➜  ~ java --version
openjdk 11.0.18 2023-01-17
OpenJDK Runtime Environment Homebrew (build 11.0.18+0)
OpenJDK 64-Bit Server VM Homebrew (build 11.0.18+0, mixed mode)

下载:https://downloads.lightbend.com/scala/2.11.12/scala-2.11.12.tgz
安装之后发现不兼容jdk-11, 查了部分资料之后选用Java8

解决办法:
修改/bin/scala,/bin/scalac文件,在最上面加入Java8的环境变量,如下:
记录一次scala项目导入编译失败的问题_第1张图片
Tips:你可以在自己的本地环境中搞双环境,方便切换。

scala加入本地环境变量:

#scala
export SCALA_HOME="/Users/tzq/app/software/scala"
export PATH=$SCALA_HOME/bin:$PATH

做完以上事情之后就可以运行scala命令看看,没有问题,环境就是ok的。

2、项目编译报错
scalac: Error: org.jetbrains.jps.incremental.scala.remote.ServerException
记录一次scala项目导入编译失败的问题_第2张图片
以上报错,其实是scala编译的栈溢出了,可以参照我如下的设置。
记录一次scala项目导入编译失败的问题_第3张图片

Tips: 这里要根据自己的情况设置,其中xss表示栈空间栈内存的大小,设置的栈的大小决定了函数调用的最大深度,默认的参数可能不够,需要加大点。至于heap堆大小,依据情况而定。

补充一下,也许不是这个问题,后来我在项目中发现了如下设置:
记录一次scala项目导入编译失败的问题_第4张图片

  • 如果不加-nobootcp会报错:[ERROR] Caused by: java.lang.NoClassDefFoundError: javax/tools/ToolProvider

  • 如果第二个不改变原始大小:-Xss2048k 就会一直报堆栈溢出,因此这里调整为2m既可,应付一般的递归深度应是足够了。

# 参数释义
-nobootcp or --no-boot-class-path
Do not use the boot classpath for the scala jars.

小结

以上问题不难,遇到问题层层递进去解决就好,在这里简要做个记录,后面如有再补充。

你可能感兴趣的:(工具相关,scala,开发语言,后端)