जब मैं Scala कोड संकलित करता हूं, तो रन करके sbt compile
, SBT कहता है:
$ sbt compile
...
[warn] there were 5 deprecation warnings; re-run with -deprecation for details
...
मैं उसको कैसे करू? (एसबीटी के भीतर से?)
जब मैं Scala कोड संकलित करता हूं, तो रन करके sbt compile
, SBT कहता है:
$ sbt compile
...
[warn] there were 5 deprecation warnings; re-run with -deprecation for details
...
मैं उसको कैसे करू? (एसबीटी के भीतर से?)
जवाबों:
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 के एकल तर्क के रूप में शामिल करने के लिए किया जाता है।
in Global
इसके बजाय in ThisBuild
भी सबप्रोजेक्ट्स के साथ समान रूप से अच्छी तरह से काम करता है - लेकिन बाद वाले को क्यों पसंद किया जाता है? या यह भी है?
scalacOptions := Seq("-unchecked", "-deprecation")
इस सेटिंग को अपने build.sbt में जोड़ें, और, यदि आपके पास एक मल्टी-मॉड्यूल प्रोजेक्ट है, तो इसे हर प्रोजेक्ट की सेटिंग में जोड़ें।
समय के साथ नए समाधान सामने आते हैं। इसलिए, अब आप संपूर्ण प्रोजेक्ट पुनर्निर्माण जारी किए बिना, स्कैला कंपाइलर को फिर से चला सकते हैं।
आपको इनस्टाइम-एसबीटी प्लगइन स्थापित करने की आवश्यकता है :
addSbtPlugin("org.ensime" % "sbt-ensime" % "1.0.0")
उसके बाद आप ensimeCompileOnly
एकल फ़ाइल संकलित करने के लिए कार्य का उपयोग कर सकते हैं । SBT प्रति कार्य सेटिंग्स कॉन्फ़िगरेशन की अनुमति देता है, इसलिए आप केवल उस कार्य के लिए बदल सकते हैं:
set scalacOptions in (Compile, EnsimeKeys.ensimeCompileOnly) += "-deprecation"
ensimeCompileOnly src/main/scala/MyFile.scala
-deprecation
एक भयानक विचार है। संपादकों में इन-द-फ्लाई एनोटेशन का समर्थन करने के लिए है। इसके अलावा, कुछ समय के प्रोजेक्ट्स के साथ एनसेम के पास समस्याओं का एक मेजबान है (विशेष रूप से वे जो मैक्रोज़ का भारी उपयोग करते हैं)।