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


335

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

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

$ sbt version

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

$ sbt --version

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

Ответы:


456
$ 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.


150
Можно ли учитывать флаг командной строки --version? Это то, что люди попробуют первыми.
Мэтт R

9
Вопрос был "Как мне проверить, какая версия sbt у меня запущена ?" и ответ о печати версии текущего проекта . Почему ответ принят?
Черри

47
Доверьтесь SBT, чтобы всегда выбирать самый нестандартный способ ведения дел :)
samthebest

15
Весь мир использует '--version', sbt использует 'sbtVersion'. Я должен проверять это каждый раз, когда мне это нужно (не часто).
Osskar Werrewka

5
Тупой и хорошо спрятанный в документации, следуя старой доброй традиции SBT.
matanster

30

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

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

10
Начиная с sbt 1.0 вам даже придется использовать sbt sbtVersion(camelCase), так как поддержка имен, разделенных дефисами, была прекращена .
Щуберт


14

В 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 задачи / настройки могут показывать разные результаты.


1
Возможно, вы используете пользовательский модуль запуска sbt, такой как sbt-extras, который переопределяет значение sbt-versionодной командной строки. В противном случае, я не знаю разницы между sbt-versionкомандной строкой и подсказкой. Это должны быть одинаковые sbtVersionнастройки в обоих случаях.
Марк Харра

есть ли способ установить разные версии sbt для разных подпроектов?
ア レ ッ ク ス


Почему sbt sbtVersionзапуск вне проекта занимает 9 секунд? Python, node и ruby ​​занимают меньше секунды, как и awk, sed, minibloom и куча других инструментов командной строки. GCC занимает одну целую секунду, что очень медленно. Но 9 секунд занимает вишня. Что делает SBT в то время?
Макс Мерфи

@MaxMurphy JVM инициализация является одной из самых медленных вещей, я думаю.
Яцек Ласковски

9

Ты можешь использовать 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 "

1
Для тех, кто ищет ответ на этот вопрос, это ответ. Не могу понять, почему ошибочный ответ, приведенный выше, был принят ... копаясь в дискуссии, можно найти этот ответ ... но ...
TheGeeko61



0

Это 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
Viru

Для этого уже есть другие ответы, я просто хотел включить новую информацию и не повторять другие ответы @viru
Рамеш Махарджан

0

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

sbt sbtVersion
sbt about
sbt 'inspect version'
sbt version
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.