获取当前的 sbt 插件交叉版本

Getting the current sbt plugin cross version

我正在尝试在 0.131.1 之间交叉构建一个 sbt 插件。为此,我需要为不同的构建使用不同的 libraryDependencies,但我找不到访问当前构建的目标 sbt 版本的方法。

当交叉编译在插件中时,有 CrossBuilding.pluginSbtVersion 但我再也找不到类似的东西了。

我该怎么做?

您可以使用以下代码:

libraryDependencies ++= {
  sbtBinaryVersion.value match {
    case "0.13" => Seq(...)
    case "1.0" => Seq(...)
  }
}

确保 运行 使用 ^ 的 sbt 命令,在所有 sbt 版本上使用 运行 命令,即:

sbt "^compile"

事实证明,解决方案一直存在于 sbt 的输出中:

[info] Setting `sbtVersion in pluginCrossBuild` to 1.1.2

我只需要使用 (sbtBinaryVersion in pluginCrossBuild).value