2012-11-30 14 views
6

मैं एसबीटी, स्कैला बिल्ड टूल के साथ बहुत अच्छी तरह से आया हूं। यदि आपको कोड में केवल छोटी समस्याएं हैं, तो यह आसान है।एसबीटी के साथ बस कुछ फाइलों को संकलित कैसे करें?

अब, एक प्रमुख फीचर जोड़ने के बाद, मेरा अधिकांश कोड टूटा हुआ है और मैं एसबीटी को निर्भर करता हूं कि निर्भरता कैसे हैं। मैं इसे मौलिक मॉड्यूल को संकलित करने में मदद कर सकता हूं, लेकिन ऐसा लगता है कि मुझे ऐसा नहीं लगता है।

यह सहायता प्रणाली है ... कुख्यात।

> help compile 
Compiles sources. 

हाँ, ठीक है। मैंने अनुमान लगाया था।

जो मैं सुनना चाहता था वह था: मैं केवल संकलन कैसे करूं - कहें - src/module/A.scala

यह संभव भी संभव नहीं है (हैलो फिर से, make, कभी आपको छोड़ दिया नहीं!)। कम से कम मुझे एक फ़ाइल में sbt compile लगाने के लिए इंटरनेट पर कोई संदर्भ नहीं मिल रहा है।

मैं कमांड लाइन प्रॉम्प्ट से एसबीटी का उपयोग कर रहा हूं, आईडीई नहीं।

अद्यतन:

यह मेरी गलती थी। :/एक स्रोत फ़ाइल को एकाधिक में विभाजित किया गया था, लेकिन प्रत्येक नए को package खंड कॉपी करने के लिए भूल गया। Oooops।

थोड़ी देर के लिए यह खुला रखेगा, क्योंकि केवल एक फ़ाइल को संकलित करने के बाद (यानी sbt compile filename की तरह कुछ) बुरा नहीं होगा।

+0

आप एसबीटी के प्रासंगिक उत्पादन जोड़ने कृपया सकते हैं कर सकते हैं? क्या गलत है? क्या आपने पहले 'साफ' निष्पादित करने की कोशिश की है? – drexin

+0

एसबीटी आउटपुट के कुछ 5 पेज हैं और मैं इसे यहां रखने में सहज नहीं हूं। आम तौर पर, एसबीटी कम से कम आश्रित भागों से शुरू होता प्रतीत होता है, लेकिन अब त्रुटियां एक-दूसरे को पार-संदर्भित कर रही हैं, इसलिए यह कहना मुश्किल है कि कहां से उलझना शुरू करना है। मेरी गलती, संभावना है, लेकिन उपकरण अभी समझने के तरीके में खड़ा है। यानी स्टेशनबेस: स्टेटबेस ढूंढ नहीं रहा; स्टेटबेस: स्टेशनबेस नहीं ढूंढ रहा है (क्योंकि वर्तमान में संकलित नहीं है)। – akauppi

+0

आप आउटपुट को http://pastie.org/ पर पेस्ट कर सकते हैं और यहां से लिंक कर सकते हैं। – drexin

उत्तर

4

आप Multi-Project Build को परिभाषित कर सकते हैं जहां आप फ़ाइलों को अलग से संकलित करना चाहते हैं, एक परियोजना में encapsulated हैं। दस्तावेज़ों के मुताबिक, निम्नलिखित संभव है:

एसबीटी इंटरैक्टिव प्रॉम्प्ट पर, अपनी परियोजनाओं और परियोजना को वर्तमान परियोजना का चयन करने के लिए परियोजनाओं को सूचीबद्ध करने के लिए प्रोजेक्ट टाइप करें। जब आप संकलन की तरह कोई कार्य चलाते हैं, तो यह वर्तमान प्रोजेक्ट पर चलता है। इसलिए आपको रूट प्रोजेक्ट को संकलित करने की आवश्यकता नहीं है, आप केवल एक सबप्रोजेक्ट संकलित कर सकते हैं।

+1

ईमानदार उत्तर के लिए +1 दिया गया। Pheeww .. और एसबीटी के लिए होना चाहिए .. सरल? : डी – akauppi

0

मैं बस यहां उल्लेख करना चाहता था कि मैं एसबीटी-संकलन-त्वरित प्लगइन (https://github.com/etsy/sbt-compile-quick-plugin) में आया था। यह क्या करता है यह टिन पर कहते हैं, बस अपने project/plugins.sbt करने के लिए addSbtPlugin("com.etsy" % "sbt-compile-quick-plugin" % "1.3.0") जोड़ने, तो आप सिर्फ sbt शुरू करने और चलाने के compileQuick /path/to/your/file

(https://stackoverflow.com/a/46849619/1358677 देखें)

संबंधित मुद्दे