จะตรวจสอบเวอร์ชั่น sbt ได้อย่างไร?


335

ฉันจะตรวจสอบ sbt รุ่นที่ฉันใช้อยู่ได้อย่างไร

ฉันมีไฟล์ bash ตั้งค่าที่ใช้sbt-launch.jarและใช้งานได้ แต่

$ sbt version

แสดงเฉพาะ "เวอร์ชั่นโครงการ" (0.1) และ

$ sbt --version

ไม่ทำอะไรเลย

คำตอบ:


456
$ sbt sbtVersion

สิ่งนี้จะพิมพ์เวอร์ชัน sbt ที่ใช้ในโครงการปัจจุบันของคุณหรือถ้าเป็นโครงการหลายโมดูลสำหรับแต่ละโมดูล

$ 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

คุณอาจต้องการใช้sbt aboutสิ่งนั้น (คัดลอกความคิดเห็นของ Mark Harrah ):

คำสั่ง about ถูกเพิ่มเมื่อเร็ว ๆ นี้เพื่อพยายามพิมพ์ข้อมูลที่เกี่ยวข้องมากที่สุดอย่างชัดเจนรวมถึงเวอร์ชัน sbt


150
สามารถพิจารณาการตั้งค่าสถานะบรรทัดคำสั่ง --version ได้หรือไม่ มันเป็นสิ่งที่ผู้คนจะลองก่อน
Matt R

9
คำถามคือ "ฉันจะตรวจสอบ sbt รุ่นที่ฉันใช้อยู่ได้อย่างไร" และคำตอบคือเกี่ยวกับรุ่น Pringting ของโครงการปัจจุบัน ทำไมคำตอบจึงได้รับการยอมรับ
เชอร์รี่

47
วางใจ SBT ให้เลือกวิธีที่ไม่ได้มาตรฐานมากที่สุดเสมอ :)
samthebest

15
โลกทั้งใบใช้ '--version', sbt ใช้ 'sbtVersion' ฉันต้องตรวจสอบมันทุกครั้งที่ฉันต้องการ (ไม่บ่อย)
Osskar Werrewka

5
ในทางที่ผิดและถูกจัดเก็บอย่างดีในเอกสารตามประเพณี sbt เก่าที่ดี
matanster

30

การรันคำสั่ง "sbt sbt-version" จะแสดงผลลัพธ์ไดเรกทอรีปัจจุบันและหมายเลขรุ่น

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

10
เริ่มต้นด้วย SBT 1.0 คุณยังมีการใช้งานsbt sbtVersion(CamelCase) การสนับสนุนสำหรับชื่อยัติภังค์คั่นได้รับลดลง
sschuberth


14

ใน SBT 0.13 ขึ้นไปคุณสามารถใช้sbtVersionงาน (ตามที่ระบุโดย @steffen) หรือaboutคำสั่ง (ตามที่ระบุโดย @ mark-harrah)

มีความแตกต่างในการsbtVersionทำงานในและนอกโครงการ SBT เมื่ออยู่ในโครงการ SBT sbtVersionแสดงเวอร์ชันของ SBT ที่ใช้โดยโครงการและโครงการย่อย

$ 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

มันตั้งอยู่ในproject/build.properties:

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

งานเดียวกันที่ดำเนินการนอกโครงการ SBT แสดงเวอร์ชันปัจจุบันของตัวปฏิบัติการเอง

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

เมื่อคุณออกไปข้างนอกaboutคำสั่งน่าจะเหมาะสมกว่าเพราะมันแสดงเวอร์ชั่น sbt เช่นเดียวกับปลั๊กอินของ Scala และที่มีให้

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

คุณอาจต้องการเรียกใช้ 'ความช่วยเหลือเกี่ยวกับ' เพื่ออ่านเอกสารประกอบ:

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.

สำหรับการsbtVersionตั้งค่าinspectคำสั่งสามารถช่วยได้

$ 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

versionการตั้งค่าที่คนดูเหมือนจะคาดหวังที่จะตรวจสอบเพื่อทราบรุ่น SBT คือการตั้งรุ่น / การแก้ไขของโมดูลปัจจุบัน

$ 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

เมื่อใช้ในโครงการ SBT งาน / การตั้งค่าอาจแสดงผลลัพธ์ที่แตกต่างกัน


1
บางทีคุณอาจใช้ตัวกำหนดเอง sbt launcher เช่น sbt-extras ซึ่งจะแทนที่ความหมายของsbt-versionบรรทัดคำสั่งหนึ่งบรรทัด มิฉะนั้นฉันไม่ทราบความแตกต่างระหว่างsbt-versionที่บรรทัดคำสั่งและพร้อมท์ ควรsbtVersionตั้งค่าเดียวกันในทั้งสองกรณี
Mark Harrah

มีวิธีใดที่จะตั้ง sbt เวอร์ชั่นต่าง ๆ สำหรับ subprojects ที่ต่างกัน?
アレックス


เหตุใดการsbt sbtVersionทำงานนอกโครงการจึงใช้เวลา 9 วินาทีในการเรียกใช้ Python, node และ ruby ​​ทั้งหมดใช้เวลาเพียงเสี้ยววินาทีเช่น awk, sed, minibloom และเครื่องมือบรรทัดคำสั่งอื่น ๆ gcc ใช้เวลาหนึ่งวินาทีทั้งหมดซึ่งช้ามาก แต่ 9 วินาทีใช้เวลาเชอร์รี่ sbt กำลังทำอะไรในเวลานั้น?
Max Murphy

@ MaxMurphy การกำหนดค่าเริ่มต้น JVM เป็นหนึ่งในสิ่งที่ช้าที่สุดที่ฉันคิด
Jacek Laskowski

9

คุณสามารถใช้ได้ sbt about

ตัวอย่าง: 
    C: \ Users \ smala> sbt about
    [ข้อมูล] ตั้งค่าโครงการปัจจุบันเป็น smala (ในไฟล์บิลด์: / C: / Users / smala /)
    [ข้อมูล] นี่คือ sbt 0.13.6
    [ข้อมูล] โครงการปัจจุบันคือ {file: / C: / Users / smala /} smala 0.1-SNAPSHOT
    [ข้อมูล] โครงการปัจจุบันสร้างกับ Scala 2.10.4
    [ข้อมูล] ปลั๊กอินที่มีอยู่: sbt.plugins.IvyPlugin, sbt.plugins.JvmPlugin, sbt.plugins.CorePlugin, sbt.plugins.JUnitXmlReportPlugin
    [ข้อมูล] sbt, sbt ปลั๊กอินและคำจำกัดความการสร้างกำลังใช้ Scala 2.10.4 "

1
สำหรับคนอื่นที่กำลังหาคำตอบสำหรับคำถามนี้นี่คือคำตอบ ไม่สามารถเข้าใจได้ว่าทำไมคำตอบที่ผิดพลาดข้างต้นได้รับการยอมรับ ... โดยการขุดผ่าน disucssion เราสามารถหาคำตอบนี้ได้ ... แต่ ...
TheGeeko61



0

การทำsbt sbt-versionนำไปสู่ข้อผิดพลาดบางอย่างเช่น

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

ในขณะที่คุณสามารถดูคำใบ้similar: sbtVersion, version, sbtBinaryVersionทั้งหมดของพวกเขาทำงาน แต่ถูกสร้างขึ้นโดยsbt sbtVersion


เวอร์ชั่นใหม่กว่านี้มีผลงานดังต่อไปนี้ sbt about หรือ sbt sbtVersion
viru

มีคำตอบอื่น ๆ อยู่แล้วที่ฉันต้องการรวมข้อมูลใหม่และไม่ตอบคำตอบอื่น ๆ อีก @viru
Ramesh

0

คุณสามารถใช้คำสั่งด้านล่างเพื่อตรวจสอบรุ่น SBT

sbt sbtVersion
sbt about
sbt 'inspect version'
sbt version
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.