Как проверить версию SBT?

Как проверить, какую версию sbt я использую?

У меня есть файл Bash, который использует sbt-launch.jarи это работает, но

$ sbt version

показывает только "версию проекта" (0.1) и

$ sbt --version

ничего не делает.

11 ответов

Решение
$ sbt sbtVersion

Это печатает версию sbt, используемую в вашем текущем проекте, или если это многомодульный проект для каждого модуля.

$ sbt 'inspect sbtVersion'
[info] Set current project to jacek (in build file:/Users/jacek/)
[info] Setting: java.lang.String = 0.13.1
[info] Description:
[info]  Provides the version of sbt.  This setting should be not be modified.
[info] Provided by:
[info]  */*:sbtVersion
[info] Defined at:
[info]  (sbt.Defaults) Defaults.scala:68
[info] Delegates:
[info]  *:sbtVersion
[info]  {.}/*:sbtVersion
[info]  */*:sbtVersion
[info] Related:
[info]  */*:sbtVersion

Вы также можете использовать sbt about что (копируя комментарий Марка Харры):

Команда about была добавлена ​​недавно, чтобы попытаться кратко напечатать наиболее релевантную информацию, включая версию sbt.

  1. Если вы используете Windows, используйте windowsKey+R типа cmd, затем нажмите enter или перейдите в папку.sbt (например, C:\Users\Prasad) и введите cmd в адресную строку, затем введите.
  2. наберите sbt about затем введите, чтобы получить версию SBT

При запуске команды "sbt sbt-version" просто выведет ваш текущий каталог и номер версии.

$ sbt sbt-version
[info] Set current project to spark (in build file:/home/morgan/code/spark/)
[info] 0.13.8

В SBT 0.13 и выше вы можете использовать sbtVersion задача (как указано @steffen) или about команда (как указано @mark-harrah)

Есть разница, как sbtVersion задание работает внутри и вне проекта SBT. Когда в проекте SBT, sbtVersion отображает версию SBT, используемую проектом и его подпроектами.

$ sbt sbtVersion
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
[info] Updating {file:/Users/jacek/.sbt/0.13/plugins/}global-plugins...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Loading project definition from /Users/jacek/oss/scalania/project
[info] Set current project to scalania (in build file:/Users/jacek/oss/scalania/)
[info] exercises/*:sbtVersion
[info]  0.13.1-RC5
[info] scalania/*:sbtVersion
[info]  0.13.1-RC5

Это установлено в project/build.properties:

jacek:~/oss/scalania
$ cat project/build.properties
sbt.version=0.13.1-RC5

Та же задача, выполняемая вне проекта SBT, показывает текущую версию самого исполняемого файла.

jacek:~
$ sbt sbtVersion
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
[info] Updating {file:/Users/jacek/.sbt/0.13/plugins/}global-plugins...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Set current project to jacek (in build file:/Users/jacek/)
[info] 0.13.0

Когда вы снаружи, about Команда кажется более подходящей, так как она показывает версию sbt, а также Scala и доступные плагины.

jacek:~
$ sbt about
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
[info] Set current project to jacek (in build file:/Users/jacek/)
[info] This is sbt 0.13.0
[info] The current project is {file:/Users/jacek/}jacek 0.1-SNAPSHOT
[info] The current project is built against Scala 2.10.2
[info] Available Plugins: com.typesafe.sbt.SbtGit, com.typesafe.sbt.SbtProguard, growl.GrowlingTests, org.sbtidea.SbtIdeaPlugin, com.timushev.sbt.updates.UpdatesPlugin
[info] sbt, sbt plugins, and build definitions are using Scala 2.10.2

Вы можете запустить 'help about', чтобы прочитать его документацию:

jacek:~
$ sbt 'help about'
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
[info] Set current project to jacek (in build file:/Users/jacek/)
Displays basic information about sbt and the build.

Для sbtVersion настройка, inspect команда может помочь.

$ sbt 'inspect sbtVersion'
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
[info] Set current project to jacek (in build file:/Users/jacek/)
[info] Setting: java.lang.String = 0.13.0
[info] Description:
[info]  Provides the version of sbt.  This setting should be not be modified.
[info] Provided by:
[info]  */*:sbtVersion
[info] Defined at:
[info]  (sbt.Defaults) Defaults.scala:67
[info] Delegates:
[info]  *:sbtVersion
[info]  {.}/*:sbtVersion
[info]  */*:sbtVersion
[info] Related:
[info]  */*:sbtVersion

version установка, которую люди, кажется, ожидают проверить, чтобы знать версию SBT, должна установить версию / версию текущего модуля.

$ sbt 'inspect version'
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
[info] Set current project to jacek (in build file:/Users/jacek/)
[info] Setting: java.lang.String = 0.1-SNAPSHOT
[info] Description:
[info]  The version/revision of the current module.
[info] Provided by:
[info]  */*:version
[info] Defined at:
[info]  (sbt.Defaults) Defaults.scala:102
[info] Reverse dependencies:
[info]  *:projectId
[info]  *:isSnapshot
[info] Delegates:
[info]  *:version
[info]  {.}/*:version
[info]  */*:version
[info] Related:
[info]  */*:version

При использовании в проекте SBT задачи / настройки могут показывать разные результаты.

Ты можешь использовать sbt about

Пример: 
    C:\Users\smala>sbt о
    [info] Установить текущий проект в smala (в файле сборки:/C:/Users/smala/)
    [info] Это sbt 0.13.6
    [info] Текущий проект: {file:/C:/Users/smala/}smala 0.1-SNAPSHOT
    [info] Текущий проект построен на Scala 2.10.4.
    [info] Доступные плагины: sbt.plugins.IvyPlugin, sbt.plugins.JvmPlugin,   sbt.plugins.CorePlugin, sbt.plugins.JUnitXmlReportPlugin
    [info] sbt, плагины sbt и определения сборки используют Scala 2.10.4"

Последние версии SBT наконец-то поддерживают стандарт --versionфлаг!

      $ sbt --version
sbt version in this project:    1.6.2
sbt script version: 1.6.2

(проверено с 1.6+, но кажется, что он существует как минимум с 1.3.3 )

Изнутри оболочки sbt

sbt:venkat> about
[info] This is sbt 1.3.3
...

То, что происходит при запуске из командной строки, могло немного измениться за 9 лет, прошедших с момента первоначальной публикации вопроса.

Сегодня вы всегда будете взаимодействовать как минимум с двумя «версиями»:

  • сценарий запуска (например, /usr/local/bin/sbt) версия.[1] Уточняйте у.
  • версия SBT по умолчанию (= версия JAR sbt-launcher), определяемая в первую очередь версией SBT проекта (в project/build.properties), во-вторых, самим сценарием запуска. Проверить с sbt --script-version (или sbtVersion в оболочке SBT)

К счастью, в большинстве повседневных сценариев версия проекта SBT - единственная, о которой вам нужно знать.


1 Раньше было просто java -jar sbt-launcher.jar, то было / есть sbt-extras/sbt (он же «повстанческий вырез»), затем был «официальный» sbt скрипт, но в отдельном проекте github под названием sbt-launcher-packaging(сейчас в архиве). Сегодня сценарий по умолчанию находится в корневой папке sbt/sbt GH и, как правило, это единственная версия, о которой вам нужно беспокоиться.

Запустите консоль sbt и введите sbtVersion проверить версию sbt, и scalaVersion для версии Scala

Дела sbt sbt-version привело к некоторой ошибке, как

[error] Not a valid command: sbt-version (similar: writeSbtVersion, session)
[error] Not a valid project ID: sbt-version
[error] Expected ':'
[error] Not a valid key: sbt-version (similar: sbtVersion, version, sbtBinaryVersion)
[error] sbt-version
[error]            ^

Как вы можете видеть подсказку similar: sbtVersion, version, sbtBinaryVersionвсе они работают, но правильный генерируется sbt sbtVersion

Вы можете использовать команду ниже, чтобы проверить версию SBT

sbt sbtVersion
sbt about
sbt 'inspect version'
sbt version
Другие вопросы по тегам