tl; dr मैं इसे एक चाल नहीं कहूंगा जो एसबीटी की सुविधा नहीं है। आपको चेतावनी दी गई थी।
मान लें कि आपको file.jar
प्रकाशित करने के लिए मिला है। जैसा कि के लिए है बिल्ड टूल, एसबीटी सहित, यह उन कार्यों को निष्पादित करना है जो अंततः एक आर्टिफैक्ट बनाते हैं - अधिकांश मामलों में एक जार फ़ाइल - किसी प्रोजेक्ट में फ़ाइलों में से।
प्रोजेक्ट आर्टिफैक्ट के लिए निर्देशांक सेट करता है।
चाल लाभ उठाने के लिए क्या एसबीटी प्रकाशित होने के लिए जार के लिए पर्यावरण (= निर्देशांक) स्थापित करने के लिए की आवश्यकता है (अन्यथा आपको लगता है कि या नहीं हो सकता कमांड लाइन पर उन्हें निर्दिष्ट करना होगा बहुत उपयोगकर्ता के अनुकूल)।
आवश्यक सेटिंग्स के साथ एक build.sbt
बनाएँ - organization
, name
, version
और संभवतः scalaVersion
- और जहां जार फ़ाइल है इसे सहेजें।
organization := "org.abc"
name := "my-own-publish-jar"
version := "1.0.0"
scalaVersion := "2.11.3"
packageBin in Compile := file(s"${name.value}_${scalaBinaryVersion.value}.jar")
आप may've देखा, निर्माण में परिवर्तन compile:package
कार्य जार फ़ाइल में बात करने के लिए।
यही है।
sbt publishLocal
निष्पादित करें और जार फ़ाइल आईवी 2 स्थानीय भंडार में होनी चाहिए, यानी ~/.ivy2/local/org.abc/my-own-publish-jar_2.11/1.0.0/jars/my-own-publish-jar_2.11.jar
।
प्रोटिप कमांड लाइन पर निर्दिष्ट निर्देशांक के साथ ऐसा करने के लिए प्लगइन लिखना अब काफी आसान होना चाहिए।
स्रोत
2014-10-23 15:56:23
यह एक बहुत ही रोचक सवाल है क्योंकि मैंने लगभग कोई कार्य नहीं देखा है जो किसी परियोजना की अपेक्षा नहीं करेगा (''' को छोड़कर)। कोई एक प्लगइन के बारे में सोच सकता है जिसे आप वैश्विक रूप से पंजीकृत करेंगे और स्थानीय आइवी भंडार में जार प्रकाशित करने के लिए इसका इस्तेमाल करेंगे। मुझे कोई प्लगइन नहीं है जो ऐसा करेगा। –