跨 Scala 版本的 Sbt 编译器桥接错误

问题描述 投票:0回答:1

我有一个使用 sbt 版本 1.10.6 的 sbt 项目,我已将其设置为交叉编译到 2.13.x 和 3.1.x scala 版本。

lazy val scala313 = "3.1.3"
lazy val scala2138 = "2.13.8"
lazy val supportedScalaVersions = List(scala313, scala2138)

然后我为发布明确设置此值:

ThisBuild / scalaVersion         := "3.1.3"

然后我在我的 build.sbt 中设置了这个集合,它正在构建一个多模块 sbt 项目。对于其中一个模块,我有以下内容:

    lazy val ocppMessages =
  module("ocpp-messages")
    .settings(
      name := """ocpp-messages""",
      crossScalaVersions := supportedScalaVersions,
      publish / skip := false
    )

当我运行构建时,出现以下错误:

error:
  bad constant pool index: 0 at pos: 48462cremental 0s
     while compiling: <no file>/ doc 0s
        during phase: globalPhase=<no phase>, enteringPhase=<some phase>
     library version: version 2.13.8
    compiler version: version 2.13.8

[error] (ocpp-messages / Compile / compileIncremental) Error compiling the sbt component 'compiler-bridge_2.13'
[error] (ocpp-messages / Compile / doc) Error compiling the sbt component 'compiler-bridge_2.13'

我是否引入了与我的路径中的 Scala 版本(即 Scala 3.2.0 和相关的 sbt 版本)的任何不兼容性?

scala sbt
1个回答
0
投票

Scala、Sbt 和 Java 版本存在兼容性问题。将我的 Scala 版本更新到 2.13.11 和 3.4.0(这似乎是 Java 21 的最低要求)后,它起作用了!作为参考,这里是版本兼容性的链接:

https://docs.scala-lang.org/overviews/jdk-compatibility/overview.html

© www.soinside.com 2019 - 2024. All rights reserved.