Comment vérifier la version de sbt?

335

Comment vérifier la version de sbt que j'utilise?

J'ai mis en place le fichier bash qui utilise sbt-launch.jar, et cela fonctionne, mais

$ sbt version

ne montre que la "version du projet" (0.1) et

$ sbt --version

ne fait rien.

jpswain
la source

Réponses:

456
$ sbt sbtVersion

Ceci imprime la version sbt utilisée dans votre projet actuel, ou s'il s'agit d'un projet multi-module pour chaque module.

$ 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

Vous pouvez également utiliser sbt aboutcela (en copiant le commentaire de Mark Harrah ):

La commande about a été ajoutée récemment pour essayer d'imprimer succinctement les informations les plus pertinentes, y compris la version sbt.

Steffen
la source
150
Un indicateur de ligne de commande --version peut-il être envisagé? C'est la chose que les gens essaieront en premier.
Matt R
9
La question était : « Comment puis-je vérifier quelle version de SBT je suis en cours d' exécution ? » et la réponse est à propos de la version du projet en cours . Pourquoi la réponse est acceptée?
Cherry
47
Faites confiance à SBT pour toujours choisir la manière la plus standard de faire les choses :)
samthebest
15
Le monde entier utilise '--version', sbt utilise 'sbtVersion'. Je dois le vérifier chaque fois que j'en ai besoin (pas fréquemment).
Osskar Werrewka
5
Obtus et bien caché dans la documentation, suivant la bonne vieille tradition sbt.
matanster
30

En exécutant la commande, "sbt sbt-version" affichera simplement votre répertoire actuel et le numéro de version.

$ sbt sbt-version
[info] Set current project to spark (in build file:/home/morgan/code/spark/)
[info] 0.13.8
Morgan Kenyon
la source
10
A partir de SBT 1.0 vous même avez à utiliser sbt sbtVersion(camelCase) comme support pour les noms séparés par des tirets est tombé .
sschuberth
29

sbt about puis entrez pour obtenir la version SBT

entrez la description de l'image ici

Prasad
la source
14

Dans SBT 0.13 et supérieur, vous pouvez utiliser la sbtVersiontâche (comme indiqué par @steffen) ou la aboutcommande (comme indiqué par @ mark-harrah)

Il y a une différence dans la façon dont la sbtVersiontâche fonctionne dans et en dehors d'un projet SBT. Dans un projet SBT, sbtVersionaffiche la version de SBT utilisée par le projet et ses sous-projets.

$ 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

Il se déroule dans project/build.properties:

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

La même tâche exécutée en dehors d'un projet SBT montre la version actuelle de l'exécutable lui-même.

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

Lorsque vous êtes à l'extérieur, la aboutcommande semble être mieux adaptée car elle affiche la version sbt ainsi que les plugins Scala et disponibles.

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

Vous voudrez peut-être exécuter 'help about' pour lire sa documentation:

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.

Pour le sbtVersionréglage, la inspectcommande peut vous aider.

$ 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

Le versionparamètre que les gens semblent s'attendre à inspecter pour connaître la version SBT est de définir la version / révision du module actuel .

$ 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

Lorsqu'elles sont utilisées dans un projet SBT, les tâches / paramètres peuvent afficher des sorties différentes.

Jacek Laskowski
la source
1
Vous utilisez peut-être un lanceur sbt personnalisé, tel que sbt-extras, qui remplace la signification de sbt-versionla ligne de commande. Sinon, je ne connais pas de différence entre sbt-versionla ligne de commande et l'invite. Il doit s'agir du même sbtVersionparamètre dans les deux cas.
Mark Harrah
existe-t-il un moyen de définir les différentes versions de sbt pour les différents sous-projets?
ア レ ッ ク ス
Pourquoi l' sbt sbtVersionexécution en dehors d'un projet prend-elle 9 secondes? Python, node et ruby ​​prennent tous moins d'une seconde, tout comme awk, sed, minibloom et un tas d'autres outils en ligne de commande. gcc prend une seconde entière, ce qui est super lent. Mais 9 secondes prend la cerise. Que fait sbt en ce moment?
Max Murphy
L'initialisation de @MaxMurphy JVM est parmi les choses les plus lentes que je pense.
Jacek Laskowski
9

Vous pouvez utiliser sbt about

Exemple: 
    C: \ Users \ smala> sbt à propos
    [info] Définir le projet en cours sur smala (dans le fichier de construction: / C: / Users / smala /)
    [info] C'est sbt 0.13.6
    [info] Le projet en cours est {file: / C: / Users / smala /} smala 0.1-INSTANTANÉ
    [info] Le projet actuel est construit contre Scala 2.10.4
    [info] Plugins disponibles: sbt.plugins.IvyPlugin, sbt.plugins.JvmPlugin, sbt.plugins.CorePlugin, sbt.plugins.JUnitXmlReportPlugin
    [info] sbt, les plugins sbt et les définitions de build utilisent Scala 2.10.4 "
Sandeep M
la source
1
Pour ceux qui cherchent la réponse à cette question, CECI est la réponse. Impossible de comprendre pourquoi la réponse erronée ci-dessus a été acceptée ... en fouillant dans la discussion, on peut trouver cette réponse ... mais ...
TheGeeko61
2

De l'intérieur du shell sbt

sbt:venkat> about
[info] This is sbt 1.3.3
...
Venkat Kotra
la source
0

exécutez la console sbt puis tapez sbtVersionpour vérifier la version sbt et scalaVersionpour la version scala

Abdelwahed Houbouby
la source
0

Faire a sbt sbt-versionconduit à une erreur car

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

Comme vous pouvez le voir similar: sbtVersion, version, sbtBinaryVersion, tous fonctionnent mais le bon est généré parsbt sbtVersion

Ramesh Maharjan
la source
Les versions les plus récentes des œuvres suivantes, sbt about ou sbt sbtVersion
viru
Il y a déjà d'autres réponses pour lesquelles je voulais juste inclure de nouvelles informations et ne pas répéter d'autres réponses @viru
Ramesh Maharjan
0

Vous pouvez utiliser la commande ci-dessous pour vérifier la version SBT

sbt sbtVersion
sbt about
sbt 'inspect version'
sbt version
Purusothaman S
la source