Como verificar a versão sbt?

335

Como verifico qual versão do sbt estou executando?

Eu tenho o arquivo bash configurado que usa sbt-launch.jare funciona, mas

$ sbt version

mostra apenas a "versão do projeto" (0.1) e

$ sbt --version

faz nada.

jpswain
fonte

Respostas:

456
$ sbt sbtVersion

Isso imprime a versão sbt usada no seu projeto atual ou se é um projeto de vários módulos para cada módulo.

$ 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

Você também pode usar sbt aboutisso (copiando o comentário de Mark Harrah ):

O comando about foi adicionado recentemente para tentar imprimir sucintamente as informações mais relevantes, incluindo a versão sbt.

Steffen
fonte
150
Um sinalizador de linha de comando --version pode ser considerado? É o que as pessoas tentam primeiro.
Matt R
9
A pergunta era "Como verifico qual versão do sbt estou executando ?" e a resposta é sobre a versão do projeto atual . Por que a resposta é aceita?
Cherry
47
Confiança SBT sempre escolher a forma mais não-padrão de fazer as coisas :)
samthebest
15
O mundo inteiro usa '--version', sbt usa 'sbtVersion'. Eu tenho que verificar todas as vezes que eu precisar (não com frequência).
Osskar Werrewka
5
Obtuso e bem escondido na documentação, seguindo a boa e velha tradição sbt.
matanster
30

A execução do comando "sbt sbt-version" simplesmente produzirá seu diretório atual e o número da versão.

$ sbt sbt-version
[info] Set current project to spark (in build file:/home/morgan/code/spark/)
[info] 0.13.8
Morgan Kenyon
fonte
10
A partir do sbt 1.0, você precisa usar sbt sbtVersion(camelCase), pois o suporte a nomes separados por hífen foi descartado .
precisa saber é o seguinte
29

sbt about então entre para obter a versão do SBT

insira a descrição da imagem aqui

Prasad
fonte
14

No SBT 0.13 e acima, você pode usar a sbtVersiontarefa (conforme indicado por @steffen) ou o aboutcomando (conforme indicado por @ mark-harrah)

Há uma diferença em como a sbtVersiontarefa funciona dentro e fora de um projeto do SBT. Quando em um projeto do SBT, sbtVersionexibe a versão do SBT usada pelo projeto e seus subprojetos.

$ 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

Está definido em project/build.properties:

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

A mesma tarefa executada fora de um projeto SBT mostra a versão atual do próprio executável.

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 você está do lado de fora, o aboutcomando parece ser mais adequado, pois mostra a versão sbt, bem como os plugins do Scala e os disponíveis.

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

Você pode querer executar 'help about' para ler sua documentação:

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.

Para a sbtVersionconfiguração, o inspectcomando pode ajudar.

$ 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

A versionconfiguração que as pessoas esperam inspecionar para conhecer a versão do SBT é definir A versão / revisão do módulo atual .

$ 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

Quando usadas em um projeto SBT, as tarefas / configurações podem mostrar resultados diferentes.

Jacek Laskowski
fonte
11
Talvez você esteja usando um iniciador sbt personalizado, como sbt-extras, que substitui o significado de sbt-versionum na linha de comando. Caso contrário, não sei a diferença entre sbt-versionna linha de comando e no prompt. Deve ser a mesma sbtVersionconfiguração nos dois casos.
Mark Harrah
existe alguma maneira de definir as diferentes versões sbt para os diferentes subprojetos?
アレックス
Por que sbt sbtVersionexecutar fora de um projeto leva 9 segundos para ser executado? Python, node e ruby ​​levam menos de um segundo, como awk, sed, minibloom e várias outras ferramentas de linha de comando. O gcc leva um segundo inteiro, o que é super lento. Mas 9 segundos leva a cereja. O que o sbt está fazendo nesse período?
Max Murphy
@MaxMurphy A inicialização da JVM está entre as coisas mais lentas que eu acho.
Jacek Laskowski
9

Você pode usar sbt about

Exemplo: 
    C: \ Users \ smala> sbt sobre
    [info] Defina o projeto atual como smala (no arquivo de compilação: / C: / Users / smala /)
    [info] Este é sbt 0.13.6
    [info] O projeto atual é {file: / C: / Users / smala /} smala 0.1-INSTANTÂNEO
    [info] O projeto atual é construído contra o Scala 2.10.4
    [informações] Plugins disponíveis: sbt.plugins.IvyPlugin, sbt.plugins.JvmPlugin, sbt.plugins.CorePlugin, sbt.plugins.JUnitXmlReportPlugin
    [info] sbt, plugins sbt e definições de compilação estão usando o Scala 2.10.4 "
Sandeep M
fonte
11
Para outras pessoas que estão procurando a resposta para esta pergunta, ESTA é a resposta. Não consigo entender por que a resposta errônea acima foi aceito ... por cavar através do disucssion, pode-se encontrar esta resposta ... mas ...
TheGeeko61
2

De dentro do shell sbt

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

execute console sbt e digite sbtVersionpara verificar a versão sbt e scalaVersionpara a versão scala

Abdelwahed Houbouby
fonte
0

Fazendo sbt sbt-versionlevou a algum erro como

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

Como você pode ver a dica similar: sbtVersion, version, sbtBinaryVersion, todos eles funcionam, mas o correto é gerado porsbt sbtVersion

Ramesh Maharjan
fonte
As versões mais recentes dos seguintes trabalhos, o SBT sobre ou sbt sbtVersion
viru
Já existem outras respostas para o que eu só queria incluir novas informações e não repetir outras respostas @viru
Ramesh Maharjan
0

Você pode usar o comando abaixo para verificar a versão do SBT

sbt sbtVersion
sbt about
sbt 'inspect version'
sbt version
Purusothaman S
fonte