Jak sprawdzić wersję SBT?


335

Jak sprawdzić, którą wersję sbt używam?

Mam skonfigurowany plik bash, który używa sbt-launch.jari działa, ale

$ sbt version

pokazuje tylko „wersję projektu” (0.1) i

$ sbt --version

nic nie robi.

Odpowiedzi:


456
$ sbt sbtVersion

Spowoduje to wydrukowanie wersji SBT użytej w bieżącym projekcie lub jeśli jest to projekt wielomodułowy dla każdego modułu.

$ 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

Możesz także tego użyć sbt about(kopiując komentarz Marka Harrah'a ):

Niedawno dodano polecenie about, aby spróbować zwięźle wydrukować najważniejsze informacje, w tym wersję sbt.


150
Czy można wziąć pod uwagę flagę wiersza polecenia --version? Ludzie najpierw spróbują tego.
Matt R

9
Pytanie brzmiało: „Jak mogę sprawdzić, która wersja SBT mam działa ?” a odpowiedź dotyczy pringowania wersji bieżącego projektu . Dlaczego odpowiedź jest akceptowana?
Cherry

47
Zaufaj SBT, aby zawsze wybierać najbardziej niestandardowy sposób robienia rzeczy :)
samthebest

15
Cały świat używa „--version”, sbt używa „sbtVersion”. Muszę to sprawdzać za każdym razem, kiedy jej potrzebuję (nie często).
Osskar Werrewka

5
Tępy i dobrze schowany w dokumentacji, zgodnie ze starą dobrą tradycją sbt.
Matanster



14

W SBT 0.13 i nowszych możesz użyć sbtVersionzadania (jak wskazał @steffen) lub aboutpolecenia (jak wskazał @ mark-harrah)

Istnieje różnica w działaniu sbtVersionzadania w projekcie SBT i poza nim. W przypadku projektu SBT sbtVersionwyświetla wersję SBT używaną przez projekt i jego podprojekty.

$ 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

Jest ustawiony w project/build.properties:

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

To samo zadanie wykonane poza projektem SBT pokazuje bieżącą wersję samego pliku wykonywalnego.

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

Kiedy jesteś na zewnątrz, aboutpolecenie wydaje się być lepiej dopasowane, ponieważ pokazuje wersję sbt, a także Scalę i dostępne wtyczki.

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

Możesz uruchomić „help about”, aby przeczytać jego dokumentację:

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.

W przypadku sbtVersionustawienia inspectpolecenie może pomóc.

$ 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

versionUstawienie, że ludzie zdają się oczekiwać, aby sprawdzić znać wersję SBT jest stworzenie wersji / rewizji obecnego modułu .

$ 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

W przypadku zastosowania w projekcie SBT zadania / ustawienia mogą wykazywać różne wyniki.


1
Być może używasz niestandardowego programu uruchamiającego sbt, takiego jak sbt-extras, który zastępuje znaczenie sbt-versionjednego z wiersza poleceń. W przeciwnym razie nie znam różnicy między sbt-versionwierszem poleceń a wierszem poleceń. W sbtVersionobu przypadkach powinno to być takie samo ustawienie.
Mark Harrah

Czy jest jakiś sposób na ustawienie różnych wersji SBT dla różnych podprojektów?
ア レ ッ ク ス


Dlaczego sbt sbtVersionuruchomienie poza projektem zajmuje 9 sekund? Python, węzeł i ruby ​​zajmują mniej niż sekundę, podobnie jak awk, sed, minibloom i kilka innych narzędzi wiersza poleceń. gcc zajmuje całą sekundę, co jest bardzo wolne. Ale 9 sekund zajmuje wiśnię. Co robi SBT w tym czasie?
Max Murphy

Inicjalizacja @MaxMurphy JVM jest jedną z najwolniejszych rzeczy, które myślę.
Jacek Laskowski

9

Możesz użyć sbt about

Przykład: 
    C: \ Users \ smala> sbt about
    [informacje] Ustaw bieżący projekt na smala (w pliku kompilacji: / C: / Users / smala /)
    [informacje] To jest sbt 0.13.6
    [informacje] Obecny projekt to {plik: / C: / Users / smala /} smala 0.1-SNAPSHOT
    [informacje] Obecny projekt jest oparty na Scali 2.10.4
    [informacje] Dostępne wtyczki: sbt.plugins.IvyPlugin, sbt.plugins.JvmPlugin, sbt.plugins.CorePlugin, sbt.plugins.JUnitXmlReportPlugin
    [informacje] sbt, wtyczki sbt i definicje kompilacji używają Scala 2.10.4 "

1
Dla innych, którzy szukają odpowiedzi na to pytanie, TO jest odpowiedź. Nie mogę zrozumieć, dlaczego powyższa błędna odpowiedź została zaakceptowana ... po przekopaniu się przez niezgoda, można znaleźć tę odpowiedź ... ale ...
TheGeeko61



0

Wykonanie sbt sbt-versionspowodowało błąd jak

[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]            ^

Jak widać podpowiedź similar: sbtVersion, version, sbtBinaryVersion, wszystkie działają, ale poprawna generowana jest przezsbt sbtVersion


W nowszych wersjach następujące prace, sbt about lub sbt sbtVersion
viru

Są już inne odpowiedzi na to, chciałem tylko dodać nowe informacje i nie powtarzać innych odpowiedzi @viru
Ramesh Maharjan

0

Możesz użyć poniższego polecenia, aby sprawdzić wersję SBT

sbt sbtVersion
sbt about
sbt 'inspect version'
sbt version
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.