Як перевірити версію 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? Це те, що люди спробують першими.
Метт Р

9
Питання було "Як перевірити, яку версію sbt я запускаю ?" і відповідь стосується принтинг-версії поточного проекту . Чому відповідь приймається?
Вишня

47
Довіряйте SBT завжди обирати найбільш нестандартний спосіб ведення справ :)
samthebest

15
Весь світ використовує '--версію', 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), оскільки підтримка імен, розділених дефісом, відпала .
sschuberth


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

Ви можете запустити "довідку про", щоб прочитати його документацію:

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, вузол і рубін займають секунду, як і awk, sed, minibloom та купа інших інструментів командного рядка. gcc займає одну цілу секунду, що дуже повільно. Але 9 секунд займає вишня. Що робить sbt за той час?
Макс Мерфі

@MaxMurphy Ініціалізація JVM - одна з найповільніших речей, на яку я думаю.
Яцек Ласковський

9

Можна використовувати sbt about

Приклад: 
    C: \ Користувачі \ 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
    [інформація] Доступні плагіни: 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 about або 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.