Làm thế nào để kiểm tra phiên bản sbt?


335

Làm cách nào để kiểm tra phiên bản sbt nào tôi đang chạy?

Tôi có tập tin bash được thiết lập có sử dụng sbt-launch.jarvà nó hoạt động, nhưng

$ sbt version

chỉ hiển thị "phiên bản dự án" (0.1) và

$ sbt --version

Không lam gi cả.

Câu trả lời:


456
$ sbt sbtVersion

Điều này in phiên bản sbt được sử dụng trong dự án hiện tại của bạn hoặc nếu đó là một dự án đa mô-đun cho mỗi mô-đun.

$ 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

Bạn cũng có thể muốn sử dụng sbt aboutđiều đó (sao chép bình luận của Mark Harrah ):

Lệnh about đã được thêm vào gần đây để cố gắng in ngắn gọn các thông tin có liên quan nhất, bao gồm cả phiên bản sbt.


150
Cờ dòng lệnh --version có thể được xem xét? Đó là điều mọi người sẽ thử đầu tiên.
Matt R

9
Câu hỏi là "Làm cách nào để kiểm tra phiên bản sbt nào tôi đang chạy ?" và câu trả lời là về phiên bản pringting của dự án hiện tại . Tại sao câu trả lời được chấp nhận?
Cherry

47
Tin tưởng SBT luôn chọn cách làm việc không chuẩn nhất :)
samthebest

15
Cả thế giới sử dụng '--version', sbt sử dụng 'sbtVersion'. Tôi phải kiểm tra nó mỗi lần khi tôi cần (không thường xuyên).
Osskar Werrewka

5
Obtuse và cũng được cất giấu trong tài liệu, theo truyền thống sbt cũ tốt.
matanster


29

sbt about sau đó nhập để có phiên bản SBT

nhập mô tả hình ảnh ở đây


14

Trong SBT 0.13 trở lên, bạn có thể sử dụng sbtVersiontác vụ (như được chỉ ra bởi @steffen) hoặc aboutlệnh (như được chỉ ra bởi @ mark-harrah)

Có một sự khác biệt về cách thức sbtVersionhoạt động của nhiệm vụ trong và ngoài dự án SBT. Khi trong dự án SBT, sbtVersionhiển thị phiên bản SBT được sử dụng bởi dự án và các tiểu dự án của nó.

$ 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

Nó được đặt trong project/build.properties:

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

Tác vụ tương tự được thực hiện bên ngoài dự án SBT cho thấy phiên bản hiện tại của chính tệp thực thi.

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

Khi bạn ở bên ngoài, aboutlệnh dường như phù hợp hơn vì nó hiển thị phiên bản sbt cũng như các plugin có sẵn của 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

Bạn có thể muốn chạy 'help about' để đọc tài liệu của 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.

Đối với các sbtVersionthiết lập, inspectlệnh có thể giúp đỡ.

$ 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

Các versionthiết lập đó mọi người dường như mong đợi để kiểm tra để biết phiên bản SBT là để thiết lập các phiên bản / sửa đổi các module hiện tại .

$ 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

Khi được sử dụng trong dự án SBT, các tác vụ / cài đặt có thể hiển thị các đầu ra khác nhau.


1
Có lẽ bạn đang sử dụng một trình khởi chạy sbt tùy chỉnh, chẳng hạn như sbt-bổ sung, ghi đè lên ý nghĩa của sbt-versionmột dòng lệnh. Mặt khác, tôi không biết về sự khác biệt giữa sbt-versiondòng lệnh và dấu nhắc. Nó phải là cùng một sbtVersionthiết lập trong cả hai trường hợp.
Mark Harrah

Có cách nào để đặt các phiên bản sbt khác nhau cho các tiểu dự án khác nhau không?
ア レ ッ


Tại sao sbt sbtVersionchạy bên ngoài một dự án mất 9 giây để chạy? Python, nút và ruby ​​đều mất dưới một giây, cũng như awk, sed, miniloom và một loạt các công cụ dòng lệnh khác. gcc mất một giây, siêu chậm. Nhưng 9 giây mất anh đào. Sbt đang làm gì trong thời gian đó?
Max Murphy

@MaxMurphy Khởi tạo JVM là một trong những điều chậm nhất tôi nghĩ.
Jacek Laskowski

9

Bạn có thể dùng sbt about

Thí dụ: 
    C: \ Users \ smala> sbt về
    [thông tin] Đặt dự án hiện tại thành smala (trong tệp xây dựng: / C: / Users / smala /)
    [thông tin] Đây là sbt 0.13.6
    [thông tin] Dự án hiện tại là {file: / C: / Users / smala /} smala 0.1-SNAPSHOT
    [thông tin] Dự án hiện tại được xây dựng dựa trên Scala 2.10.4
    [thông tin] Các plugin có sẵn: sbt.plugins.IvyPlugin, sbt.plugins.JvmPlugin, sbt.plugins.CorePlugin, sbt.plugins.JUnitXmlReportPlugin
    [thông tin] sbt, sbt plugin và định nghĩa bản dựng đang sử dụng Scala 2.10.4 "

1
Đối với những người khác đang tìm kiếm câu trả lời cho câu hỏi này, ĐÂY là câu trả lời. Không thể hiểu tại sao câu trả lời sai ở trên được chấp nhận ... bằng cách đào sâu vào sự thất vọng, người ta có thể tìm thấy câu trả lời này ... nhưng ...
TheGeeko61


0

chạy bảng điều khiển sbt sau đó nhập sbtVersionđể kiểm tra phiên bản sbt và scalaVersioncho phiên bản scala


0

Làm sbt sbt-versiondẫn đến một số lỗi như

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

Như bạn có thể thấy gợi ý similar: sbtVersion, version, sbtBinaryVersion, tất cả chúng đều hoạt động nhưng chính xác được tạo bởisbt sbtVersion


Các phiên bản mới hơn các công trình sau đây, SBT về hoặc SBT sbtVersion
Viru

Đã có những câu trả lời khác mà tôi chỉ muốn đưa vào thông tin mới và không lặp lại các câu trả lời khác @viru
Ramesh Maharjan

0

Bạn có thể sử dụng lệnh dưới đây để kiểm tra phiên bản SBT

sbt sbtVersion
sbt about
sbt 'inspect version'
sbt version
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.