Sbt वर्जन कैसे चेक करें?


335

मैं कैसे जाँचूँ कि sbt का कौन सा संस्करण मैं चला रहा हूँ?

मेरे पास बैश फ़ाइल है जो उपयोग करता है 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कर सकते हैं ( मार्क हर्राह की टिप्पणी की नकल करते हुए ):

लगभग कमांड को हाल ही में sbt संस्करण सहित सबसे अधिक प्रासंगिक जानकारी को प्रिंट करने की कोशिश करने के लिए जोड़ा गया था।


150
क्या --version कमांड लाइन का झंडा माना जा सकता है? यह वह चीज है जिसे लोग पहले आजमाएंगे।
मैट आर

9
प्रश्न था "मैं कैसे जाँचूँ कि sbt का कौन सा संस्करण मैं चला रहा हूँ ?" और उत्तर वर्तमान परियोजना के वर्जनिंग संस्करण के बारे में है । उत्तर क्यों दिया गया है?
चेरी

47
भरोसा एसबीटी हमेशा चीजों को करने का सबसे गैर-मानक तरीका है :)
samthebest

15
पूरी दुनिया '--version' का उपयोग करती है, sbt 'sbtVersion' का उपयोग करता है। मुझे इसे हर एक बार जांचना होगा जब मुझे इसकी आवश्यकता होती है (अक्सर नहीं)।
23 अक्टूबर को ऑस्कर वार्रेका

5
पुरानी पुरानी sbt परंपरा का पालन करते हुए, दस्तावेज़ में ऑब्ज़्यूस और अच्छी तरह से टकरा गया।
मैटनस्टर

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
1.0 sbt से शुरू करके आपको यहां तक किsbt sbtVersion (camelCase) का उपयोग करना होगा क्योंकि हाइफन-अलग किए गए नामों के समर्थन को हटा दिया गया है
sschuberth 19


14

एसबीटी 0.13 और इसके बाद के संस्करण में, आप sbtVersionकार्य का उपयोग कर सकते हैं (जैसा कि @steffen द्वारा बताया गया है) या aboutकमांड (जैसा कि @ चिह्न-हर्रा द्वारा बताया गया है)

sbtVersionएसबीटी परियोजना के अंदर और बाहर काम करने के तरीके में अंतर है । जब एक 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

एसबीटी परियोजना के बाहर निष्पादित एक ही कार्य निष्पादन योग्य के वर्तमान संस्करण को दर्शाता है।

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 संस्करण के साथ-साथ स्काला और उपलब्ध प्लगइन्स को भी दिखाता है।

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 '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 लॉन्चर का उपयोग कर रहे हैं, जैसे sbt-extras, जो sbt-versionएक कमांड लाइन के अर्थ को ओवरराइड करता है । अन्यथा, मुझे sbt-versionकमांड लाइन और प्रॉम्प्ट के बीच अंतर का पता नहीं है । यह sbtVersionदोनों मामलों में एक ही सेटिंग होनी चाहिए ।
मार्क हरराह

क्या अलग सबप्रोजेक्ट के लिए अलग sbt संस्करण सेट करने का कोई तरीका है?
ッ ク ア


क्यों करता है sbt sbtVersionएक परियोजना के बाहर चलाने के 9 सेकंड लग चलाने के लिए? पायथन, नोड और रूबी सभी एक सेकंड के तहत लेते हैं, जैसे कि awk, sed, minibloom और अन्य अन्य स्ट्रीम टूल का एक गुच्छा। gcc एक सेकंड का समय लेता है, जो सुपर-स्लो है। लेकिन 9 सेकंड चेरी लेता है। उस समय में sbt क्या कर रहा है?
मैक्स मर्फी

@MaxMurphy JVM आरंभीकरण मेरे विचार से सबसे धीमी चीजों में से एक है।
जसक लस्कॉस्की

9

आप उपयोग कर सकते हैं sbt about

उदाहरण: 
    C: \ Users \ smala> sbt के बारे में
    [जानकारी] स्माल में वर्तमान प्रोजेक्ट सेट करें (बिल्ड फ़ाइल में: / C: / उपयोगकर्ता / smala /)
    [जानकारी] यह sbt 0.13.6 है
    [जानकारी] वर्तमान परियोजना {फ़ाइल: / C: / उपयोगकर्ता / smala /} स्मला ०.१-स्नैपशॉट है
    [जानकारी] वर्तमान परियोजना स्काला २.१०.४ के खिलाफ बनाई गई है
    [जानकारी] उपलब्ध प्लगइन्स: sbt.plugins.IvyPlugin, sbt.plugins.JvmPlugin, sbt.plugins.CorePlugin, sbt.plugins.JUnitXmlReportPlugin
    [जानकारी] sbt, sbt प्लगइन्स, और निर्माण परिभाषाएँ Scala 2.10.4 का उपयोग कर रही हैं।

1
अन्य जो इस प्रश्न का उत्तर चाहते हैं, उनके लिए यह उत्तर है। समझ नहीं पा रहा है कि ऊपर दिए गए गलत उत्तर को क्यों स्वीकार किया गया ... डिसकस के माध्यम से खुदाई करके, कोई भी इस उत्तर को पा सकता है ... लेकिन ...
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


नए संस्करणों के निम्न काम करता है, के बारे में या sbtVersion एसबीटी एसबीटी
वीरू

इसके लिए पहले से ही अन्य उत्तर हैं कि मैं नई जानकारी को शामिल करना चाहता था और अन्य उत्तरों को नहीं दोहराना चाहता था @viru
रमेश

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.