Come controllare la versione sbt?


335

Come posso verificare quale versione di sbt sto usando?

Ho impostato il file bash che utilizza sbt-launch.jare funziona, ma

$ sbt version

mostra solo la "versione del progetto" (0.1) e

$ sbt --version

non fa nulla.

Risposte:


456
$ sbt sbtVersion

Ciò stampa la versione sbt utilizzata nel progetto corrente o se si tratta di un progetto multi-modulo per ciascun modulo.

$ 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

Puoi anche usarlo sbt about(copiando il commento di Mark Harrah ):

Il comando about è stato aggiunto di recente per provare a stampare in modo succinto le informazioni più rilevanti, inclusa la versione sbt.


150
È possibile prendere in considerazione un flag della riga di comando --version? È la cosa che la gente proverà per prima.
Matt R

9
La domanda era "Come posso verificare quale versione di sbt sto eseguendo ?" e la risposta riguarda la versione originale del progetto attuale . Perché la risposta è accettata?
Cherry,

47
Fidati di SBT per scegliere sempre il modo più non standard di fare le cose :)
Samthebest

15
Il mondo intero usa '--version', sbt usa 'sbtVersion'. Devo controllarlo ogni volta che ne ho bisogno (non frequentemente).
Osskar Werrewka,

5
Ottuso e ben nascosto nella documentazione, secondo la buona vecchia tradizione sbt.
matanster

30

Eseguendo il comando "sbt sbt-version" verrà semplicemente emessa la directory corrente e il numero di versione.

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

10
A partire dalla SBT 1.0 ancora di avere a uso sbt sbtVersion(camelCase) come supporto per i nomi di trattini separati è caduto .
sschuberth,

29

sbt about quindi accedere per ottenere la versione SBT

inserisci qui la descrizione dell'immagine


14

In SBT 0.13 e versioni successive, è possibile utilizzare l' sbtVersionattività (come indicato da @steffen) o il aboutcomando (come indicato da @ mark-harrah)

C'è una differenza nel modo in cui l' sbtVersionattività funziona all'interno e all'esterno di un progetto SBT. In un progetto SBT, sbtVersionvisualizza la versione di SBT utilizzata dal progetto e dai suoi sottoprogetti.

$ 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

È impostato in project/build.properties:

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

La stessa attività eseguita all'esterno di un progetto SBT mostra la versione corrente dell'eseguibile stesso.

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

Quando sei fuori, il aboutcomando sembra adattarsi meglio in quanto mostra la versione sbt, nonché i plugin di Scala e disponibili.

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

Potresti voler eseguire 'help about' per leggere la sua documentazione:

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.

Per l' sbtVersionimpostazione, il inspectcomando può aiutare.

$ 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

L' versionimpostazione che le persone sembrano aspettarsi di ispezionare per conoscere la versione SBT è di impostare la versione / revisione del modulo corrente .

$ 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

Se utilizzati in un progetto SBT, le attività / impostazioni possono mostrare output diversi.


1
Forse stai usando un launcher sbt personalizzato, come sbt-extra, che sovrascrive il significato di sbt-versionuna riga di comando. Altrimenti, non conosco differenze tra sbt-versionla riga di comando e il prompt. Dovrebbe essere la stessa sbtVersionimpostazione in entrambi i casi.
Mark Harrah,

c'è un modo per impostare le diverse versioni sbt per i diversi sottoprogetti?
ア レ ッ ク ス


Perché l' sbt sbtVersionesecuzione all'esterno di un progetto richiede 9 secondi? Python, node e ruby ​​prendono tutti in meno di un secondo, così come awk, sed, minibloom e un sacco di altri strumenti da riga di comando. gcc richiede un secondo intero, che è super-lento. Ma 9 secondi prende la ciliegia. Cosa sta facendo sbt in quel momento?
Max Murphy,

L'inizializzazione di @MaxMurphy JVM è tra le cose più lente che penso.
Jacek Laskowski il

9

Puoi usare sbt about

Esempio: 
    C: \ Users \ smala> sbt about
    [info] Imposta il progetto corrente su smala (nel file di build: / C: / Users / smala /)
    [info] Questo è sbt 0.13.6
    [info] Il progetto attuale è {file: / C: / Users / smala /} smala 0.1-SNAPSHOT
    [info] Il progetto attuale è stato costruito contro Scala 2.10.4
    [info] Plugin disponibili: sbt.plugins.IvyPlugin, sbt.plugins.JvmPlugin, sbt.plugins.CorePlugin, sbt.plugins.JUnitXmlReportPlugin
    [info] sbt, plugin sbt e definizioni build usano Scala 2.10.4 "

1
Per gli altri che cercano la risposta a questa domanda, QUESTA è la risposta. Non riesco a capire perché la risposta errata sopra sia stata accettata ... scavando nella disfunzione, si può trovare questa risposta ... ma ...
TheGeeko61

2

Dall'interno della shell sbt

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

0

eseguire la console sbt quindi digitare sbtVersionper verificare la versione sbt e scalaVersionper la versione scala


0

Fare ha sbt sbt-versionportato ad alcuni errori come

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

Come puoi vedere il suggerimento similar: sbtVersion, version, sbtBinaryVersion, tutti funzionano ma viene generato quello correttosbt sbtVersion


Le versioni più recenti funzionano come segue, sbt about o sbt sbtVersion
viru,

Ci sono già altre risposte per cui volevo solo includere nuove informazioni e non ripetere altre risposte @viru
Ramesh Maharjan

0

È possibile utilizzare il comando seguente per verificare la versione SBT

sbt sbtVersion
sbt about
sbt 'inspect version'
sbt version
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.