获取当前的 sbt 插件交叉版本
Getting the current sbt plugin cross version
我正在尝试在 0.13
和 1.1
之间交叉构建一个 sbt 插件。为此,我需要为不同的构建使用不同的 libraryDependencies
,但我找不到访问当前构建的目标 sbt 版本的方法。
当交叉编译在插件中时,有 CrossBuilding.pluginSbtVersion
但我再也找不到类似的东西了。
sbtVersion.value
总是给我 0.13.16
(sbtVersion in sbtPlugin)
同样
crossVersion
总是给我 Binary
scalaBinaryVersion
总是给我 2.10
我该怎么做?
您可以使用以下代码:
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
我正在尝试在 0.13
和 1.1
之间交叉构建一个 sbt 插件。为此,我需要为不同的构建使用不同的 libraryDependencies
,但我找不到访问当前构建的目标 sbt 版本的方法。
当交叉编译在插件中时,有 CrossBuilding.pluginSbtVersion
但我再也找不到类似的东西了。
sbtVersion.value
总是给我0.13.16
(sbtVersion in sbtPlugin)
同样crossVersion
总是给我Binary
scalaBinaryVersion
总是给我2.10
我该怎么做?
您可以使用以下代码:
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