【问题标题】:Scala not builds on Java 10Scala 不是基于 Java 10 构建的
【发布时间】:2018-09-07 09:42:06
【问题描述】:

在通过 Intellij Idea 构建时,我收到以下消息:

错误:scalac:“jvm-1.10”不是“-target”的有效选择 错误:scalac:错误选项:'-target:jvm-1.10'

稍后,在 Java 升级之后

构建、执行、部署 -> 构建工具 -> Gradle -> Gradle JVM: 1.8 构建、执行、部署 -> 编译器 -> Scala 编译器 -> Scala 编译服务器 -> JDK:1.8

build.gradle

compileScala.targetCompatibility = 1.8
ScalaCompileOptions.metaClass.useAnt = false

没有任何帮助!

更新: 这有帮助:在build.gradle

tasks.withType(ScalaCompile) {
    scalaCompileOptions.useAnt = false
}

不需要:

compileScala.targetCompatibility = 1.8 
ScalaCompileOptions.metaClass.useAnt = false

【问题讨论】:

  • 您使用的是哪个 Scala 版本?请查看here
  • 我的scala版本是2.12.6

标签: scala intellij-idea build.gradle java-10


【解决方案1】:

“错误:scalac:'jvm-1.10'不是'-target'的有效选择错误:scalac:错误选项:'-target:jvm-1.10'”

  • 在下面提到的JDK兼容性说明中,还表示 Java 10 不完全支持 Scala 2.12.6 JDK 9 & 10 compatibility notes
  • 正如您所说,您是通过 IntelliJ IDEA 构建的,我怀疑 您尚未配置您的 java 版本 (Java 10) 或 scala 版本 (2.12.6) 里面运行配置项目设置。

  • 还请尝试通过
    构建/编译您的应用程序 命令行以检查您是否收到相同的错误 有了那个(否则这只是你在 IDEA 中的错误配置
    需要改变)

JDK 9 & 10 兼容性说明(在 Scala 文档中提到)

JDK 9 & 10 兼容性说明 从 Scala 2.12.6 和 2.11.12 开始,JDK 9 和 10 支持不完整。值得注意的是,scalac 不会强制执行 Java 平台模块系统的限制,这意味着类型检查的代码可能会在运行时引发链接错误。

JDK 9 & 10 支持需要最低 sbt 版本 1.1.0,或 0.13.x 系列中的 0.13.17。

有关 JDK 9 和 10 兼容性的更多信息,请观看 GitHub 上的“支持 JDK 9”问题。

【讨论】:

  • 这个 Intellj IDEA 配置问题。谢谢!
  • @HoTicE Great :) 大多数时候 IntelliJIDEA 没有正确设置预期的配置,最好依靠命令行输出 :)
【解决方案2】:

使用 java 11 和 scala 2.12.10 的混合多模块 gradle 项目可能会出现同样的问题。

在这种情况下,通过

重新配置 IntelliJ (2019.2) 可能会有所帮助

Settings > Build, Execution, Deployment > Scala Compiler

通过删除在Additional compiler options中为受影响的scala模块定义的目标。

【讨论】:

    【解决方案3】:

    在 Java 11 遇到同样问题时,我偶然发现了这个问题。Roland Ewald 的重新配置注释解决了这个问题。值得一提的是,必须对项目的所有模块进行重新配置(至少对我来说这是必要的)以及 IntelliJ 有时会隐藏Additional compiler options 的部分内容,因此请务必点击展开甚至如果它们似乎为空或正确。

    【讨论】:

      猜你喜欢
      • 2018-03-05
      • 2013-06-10
      • 1970-01-01
      • 2011-06-05
      • 2010-11-03
      • 1970-01-01
      • 2021-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多