सबसे पहले, आप sbt-extras का उपयोग करना चाहेंगे, क्योंकि यह स्वचालित रूप से एसबीटी के सही संस्करण को डाउनलोड और उपयोग करता है। एसबीटी के गलत संस्करण का उपयोग करने की कोशिश कर रहा है (जिस परियोजना को आप बनाने की कोशिश कर रहे हैं उससे नया या पुराना कहता है) यह आवश्यक रूप से काम नहीं करेगा, और अजीब त्रुटियों का कारण बन सकता है।
भागो यह:
~/path/to/sbt-extras/sbt
प्रतीक्षा इसे शुरू करने और सब कुछ डाउनलोड करने के लिए के लिए। यदि आपको प्रमाणीकृत प्रॉक्सी का उपयोग करने की आवश्यकता है, तो आपको प्रॉक्सी के लिए उपयोगकर्ता नाम और पासवर्ड निर्दिष्ट करने के लिए स्क्रिप्ट को संपादित करने की आवश्यकता होगी।
स्कैला के संस्करण की जांच करें कि सोचता है कि इसे (आउटपुट के अंत में, अगर सब कुछ काम करता है) के खिलाफ निर्माण करने की आवश्यकता है। यदि यह ठीक है, ठीक है, तो आपको कुछ भी करने की आवश्यकता नहीं है। यदि ऐसा नहीं है, आप अस्थायी रूप से एक संस्करण स्पष्ट रूप ++ के साथ, निर्दिष्ट कर सकते हैं जैसे:
++2.8.1
(आप इस स्थायी बनाना चाहते हैं, तो आप का निर्माण परिभाषा फ़ाइलों को संपादित कर सकते हैं, लेकिन एक परिवर्तन कर के रूप में शामिल हैं जो संस्करण नियंत्रण के तहत फ़ाइलों के लिए, हो सकता है कि आप ऐसा नहीं करना चाहते हैं।)
अब, यदि आप एसबीटी के पुराने संस्करण का उपयोग कर रहे हैं, तो अगले चरण को न छोड़ें! यदि आप करते हैं तो आपको अजीब त्रुटियां मिल सकती हैं।
update
अब आप का निर्माण और परीक्षण आप क्या निर्माण किया है सकते हैं:
test
आपको एक त्रुटि "फ़ाइल नाम बहुत लंबा" मिलता है, यह एक एसबीटी विशेष समस्या नहीं है, यह एक स्केला समस्या है , जो अक्सर उबंटू उपयोगकर्ताओं को प्रभावित करता है (तकनीकी रूप से, अनबंटू उपयोगकर्ताओं के लिए यह आमतौर पर एनएनएफएस के साथ एन्क्रिप्टेड होम निर्देशिका से संबंधित है)। यदि आप Scala> = 2.9 का उपयोग कर रहे हैं, तो स्केलैक कमांड-लाइन विकल्प का उपयोग करने के लिए बिल्ड को संपादित करें जो आपको अधिकतम फ़ाइल नाम लंबाई निर्दिष्ट करने की अनुमति देता है। अन्यथा, यदि आप लिनक्स पर हैं, तो आप इन आदेशों को इन शेल प्रॉम्प्ट ( यूनिक्स पर CTRL + Z के साथ पृष्ठभूमि एसबीटी नहीं कर सकते हैं, क्योंकि इन आदेशों को चलाकर/dev/shm या/tmp पर पुनर्निर्देशित कर सकते हैं, क्योंकि यह हो सकता है ठीक से काम करना बंद करने के लिए) दिखाई देते हैं:
rm -rf target
ln -s /dev/shm target
(आप/परियोजना में इन आदेश पर अमल करना पड़ सकता है बजाय या रूप में अच्छी तरह का निर्माण)
वास्तव में, यह शायद बेहतर है, और भी अधिक सुरक्षित हो सकता है, के लिए।/dev/shm या/tmp की उपनिर्देशिका बनाएं और इसके बजाए इसका उपयोग करें।
संकलन परिणाम लक्ष्य में दिखाई देना चाहिए।फिर आप इसे चलाने के लिए चाहते हो सकता है यदि आप उसका चला सकते है: सब कुछ ठीक लग रहा है
run
हैं, तो आप वैकल्पिक रूप से स्थानीय स्तर पर परिणाम प्रकाशित कर सकते हैं ताकि परिणाम तो अन्य एसबीटी द्वारा स्वचालित रूप से उठाया जा सकता है बनाता है:
publish-local
"फ़ाइल का नाम बहुत लंबा है": समाधान * * xmax-classfile-name' को 143 तक घटाएं, इसे बढ़ाने के लिए नहीं, जैसा कि मैंने शुरू में सोचा था। ऐसा इसलिए है क्योंकि [ecryptfs उस समय से अधिक फ़ाइल नामों को संभाल नहीं सकता है] (https://bugs.launchpad.net/ecryptfs/+bug/344878)। – cberzan
यदि आप एन्क्रिप्टेड होम निर्देशिका का उपयोग कर रहे हैं, तो एक आसान समाधान है कि आपकी लक्षित निर्देशिका को एन्क्रिप्टेड निर्देशिका के बाहर निर्देशिका में लिंक करना है उदाहरण: ln -s/tmp target – Jack