¿Cómo verificar la versión de sbt?

335

¿Cómo verifico qué versión de sbt estoy ejecutando?

Tengo la configuración del archivo bash que usa sbt-launch.jar, y funciona, pero

$ sbt version

solo muestra la "versión del proyecto" (0.1) y

$ sbt --version

no hace nada.

jpswain
fuente

Respuestas:

456
$ sbt sbtVersion

Esto imprime la versión sbt utilizada en su proyecto actual, o si es un proyecto de varios 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

También puede usar sbt abouteso (copiando el comentario de Mark Harrah ):

El comando about se agregó recientemente para intentar imprimir de manera sucinta la información más relevante, incluida la versión sbt.

Steffen
fuente
150
¿Se podría considerar un indicador de línea de comando --version? Es lo que la gente intentará primero.
Matt R
99
La pregunta era "¿Cómo verifico qué versión de sbt estoy ejecutando ?" y la respuesta es sobre la versión pringting del proyecto actual . ¿Por qué se acepta la respuesta?
Cherry
47
Confíe en SBT para elegir siempre la forma más no estándar de hacer las cosas :)
samthebest
15
El mundo entero usa '--version', sbt usa 'sbtVersion'. Tengo que verificarlo cada vez que lo necesito (no con frecuencia).
Osskar Werrewka
55
Obtuso y bien escondido en la documentación, siguiendo la buena y antigua tradición sbt.
matanster
30

Al ejecutar el comando, "sbt sbt-version" simplemente generará su directorio actual y el número de versión.

$ sbt sbt-version
[info] Set current project to spark (in build file:/home/morgan/code/spark/)
[info] 0.13.8
Morgan Kenyon
fuente
10
Comenzando con sbt 1.0, incluso tiene que usar sbt sbtVersion(camelCase) ya que se ha eliminado la compatibilidad con nombres separados por guiones .
sschuberth
29

sbt about luego ingrese para obtener la versión SBT

ingrese la descripción de la imagen aquí

Prasad
fuente
14

En SBT 0.13 y superior, puede usar la sbtVersiontarea (como lo señala @steffen) o el aboutcomando (como lo señala @ mark-harrah)

Hay una diferencia en cómo funciona la sbtVersiontarea dentro y fuera de un proyecto SBT. Cuando se encuentra en un proyecto SBT, sbtVersionmuestra la versión de SBT utilizada por el proyecto y sus subproyectos.

$ 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

Se establece en project/build.properties:

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

La misma tarea ejecutada fuera de un proyecto SBT muestra la versión actual del ejecutable.

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

Cuando está afuera, el aboutcomando parece encajar mejor, ya que muestra la versión sbt, así como los complementos de Scala y 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

Es posible que desee ejecutar 'ayuda sobre' para leer su documentación:

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 la sbtVersionconfiguración, el inspectcomando puede ayudar.

$ 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

La versionconfiguración que la gente parece esperar inspeccionar para conocer la versión SBT es establecer la versión / revisión del módulo actual .

$ 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

Cuando se usa en un proyecto SBT, las tareas / configuraciones pueden mostrar diferentes resultados.

Jacek Laskowski
fuente
1
Quizás esté utilizando un iniciador sbt personalizado, como sbt-extras, que anula el significado de sbt-versionuno en la línea de comandos. De lo contrario, no sé de una diferencia entre sbt-versionen la línea de comando y en el indicador. Debe ser la misma sbtVersionconfiguración en ambos casos.
Mark Harrah
¿Hay alguna manera de configurar las diferentes versiones de sbt para los diferentes subproyectos?
ア レ ッ ク ス
¿Por qué la sbt sbtVersionejecución fuera de un proyecto tarda 9 segundos en ejecutarse? Python, node y ruby ​​toman menos de un segundo, al igual que awk, sed, minibloom y un montón de otras herramientas de línea de comandos. gcc toma un segundo entero, que es súper lento. Pero 9 segundos toma la cereza. ¿Qué está haciendo sbt en ese momento?
Max Murphy
La inicialización de @MaxMurphy JVM es una de las cosas más lentas que creo.
Jacek Laskowski
9

Puedes usar sbt about

Ejemplo: 
    C: \ Users \ smala> sbt acerca de
    [info] Establecer el proyecto actual en smala (en el archivo de compilación: / C: / Users / smala /)
    [info] Esto es sbt 0.13.6
    [info] El proyecto actual es {archivo: / C: / Users / smala /} smala 0.1-SNAPSHOT
    [info] El proyecto actual está construido contra Scala 2.10.4
    [información] Complementos disponibles: sbt.plugins.IvyPlugin, sbt.plugins.JvmPlugin, sbt.plugins.CorePlugin, sbt.plugins.JUnitXmlReportPlugin
    [info] sbt, los complementos sbt y las definiciones de compilación utilizan Scala 2.10.4 "
Sandeep M
fuente
1
Para otros que buscan la respuesta a esta pregunta, ESTA es la respuesta. No puedo entender por qué se aceptó la respuesta errónea anterior ... cavando a través de la discusión, uno puede encontrar esta respuesta ... pero ...
TheGeeko61
2

Desde dentro del sbt shell

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

ejecute la consola sbt, luego escriba sbtVersionpara verificar la versión sbt y scalaVersionpara la versión scala

Abdelwahed Houbouby
fuente
0

Hacer sbt sbt-versioncondujo a algún error 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 puede ver la pista similar: sbtVersion, version, sbtBinaryVersion, todos funcionan pero el correcto es generado porsbt sbtVersion

Ramesh Maharjan
fuente
Las versiones más recientes de los siguientes trabajos, sbt about o sbt sbtVersion
viru
Ya hay otras respuestas para eso, solo quería incluir información nueva y no repetir otras respuestas @viru
Ramesh Maharjan
0

Puede usar el siguiente comando para verificar la versión SBT

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