Sbt में "विवरण के लिए -Deprecation के साथ फिर से कैसे चलाएं"?


168

जब मैं Scala कोड संकलित करता हूं, तो रन करके sbt compile, SBT कहता है:

$ sbt compile
...
[warn] there were 5 deprecation warnings; re-run with -deprecation for details
...

मैं उसको कैसे करू? (एसबीटी के भीतर से?)


2
इसी तरह के सवाल (जिसमें आपके सवाल का जवाब शामिल है) stackoverflow.com/questions/9415962/… पर
क्रिस्टियन डोमगाला

जवाबों:


217

sbt खोल

Sbt शेल में रहते हुए (यदि आप अपना बदलाव नहीं चाहते हैं build.sbt):

$ sbt
> set scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation")
> compile
> exit

कारण in ThisBuild, setसभी उप-परियोजनाओं के लिए सेटिंग्स को लागू करता है, साथ ही साथ।

कमांड लाइन

आप कमांड लाइन पर एकल कमांड के रूप में भी ऊपर चला सकते हैं।

sbt '; set scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation") ; compile' 

ट्रिक का उपयोग ;(अर्धविराम) अलग-अलग कमांड और '(टिक्स) को अलग-अलग कमांड ;को sbt के एकल तर्क के रूप में शामिल करने के लिए किया जाता है।


2
@retronym: in Globalइसके बजाय in ThisBuildभी सबप्रोजेक्ट्स के साथ समान रूप से अच्छी तरह से काम करता है - लेकिन बाद वाले को क्यों पसंद किया जाता है? या यह भी है?
एरिक कप्लून

23
scalacOptions := Seq("-unchecked", "-deprecation")

इस सेटिंग को अपने build.sbt में जोड़ें, और, यदि आपके पास एक मल्टी-मॉड्यूल प्रोजेक्ट है, तो इसे हर प्रोजेक्ट की सेटिंग में जोड़ें।


-2

समय के साथ नए समाधान सामने आते हैं। इसलिए, अब आप संपूर्ण प्रोजेक्ट पुनर्निर्माण जारी किए बिना, स्कैला कंपाइलर को फिर से चला सकते हैं।

आपको इनस्टाइम-एसबीटी प्लगइन स्थापित करने की आवश्यकता है :

addSbtPlugin("org.ensime" % "sbt-ensime" % "1.0.0")

उसके बाद आप ensimeCompileOnlyएकल फ़ाइल संकलित करने के लिए कार्य का उपयोग कर सकते हैं । SBT प्रति कार्य सेटिंग्स कॉन्फ़िगरेशन की अनुमति देता है, इसलिए आप केवल उस कार्य के लिए बदल सकते हैं:

set scalacOptions in (Compile, EnsimeKeys.ensimeCompileOnly) += "-deprecation"
ensimeCompileOnly src/main/scala/MyFile.scala

1
सिर्फ पाने के लिए एसेम जोड़ना -deprecationएक भयानक विचार है। संपादकों में इन-द-फ्लाई एनोटेशन का समर्थन करने के लिए है। इसके अलावा, कुछ समय के प्रोजेक्ट्स के साथ एनसेम के पास समस्याओं का एक मेजबान है (विशेष रूप से वे जो मैक्रोज़ का भारी उपयोग करते हैं)।
जक

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