Почему SBT 0.12.2 разрешает плагины с Scala 2.9.2 и игнорирует scalaVersion в build.sbt?
SBT 0.12.2
всегда пытается разрешить плагины, используя Scala 2.9.2
при использовании %%
синтаксис при импорте плагинов.
Я попытался установить более старые версии Scala в build.sbt
, более новые версии и т. д. Даже удаление target
папка каждый раз... кажется, ничего не имеет значения.
name := "Game"
version := "1.0"
scalaVersion := "2.9.1" // SBT is ignoring the scala version
2 ответа
SBT является рекурсивным, поэтому вам нужно указать версию Scala для проекта, который строит ваш проект. Другими словами, нужно добавить соответствующие scalaVersion
к plugins.sbt
файл.
Для всех плагинов в вашем проекте вы устанавливаете scalaVersion
в project/plugins.sbt
файл, который конфигурирует определение проекта сборки для вашего проекта и где вы определяете плагины.
$ cat project/plugins.sbt
scalaVersion := "2.9.3"
Однако есть способ настроить более специфическую версию sbt и Scala для плагина.
Вместо того, чтобы использовать addSbtPlugin
который принимает один ModuleID
(построен с %
а также %%
), используйте addSbtPlugin(dependency: ModuleID, sbtVersion: String)
или даже addSbtPlugin(dependency: ModuleID, sbtVersion: String, scalaVersion: String)
например,
$ cat project/plugins.sbt
// It doesn't exist and it's only for demo purposes
addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.1.0", "0.12.2", "2.5")