2011-08-12 22 views
11

के लिए शुरुआती मार्गदर्शिका मैं एसबीटी के लिए नया हूं और यह सुनिश्चित नहीं कर रहा हूं कि प्रोजेक्ट कैसे शुरू किया जाए। क्या कोई मुझे हैलो वर्ल्ड टाइप प्रोजेक्ट बनाने के लिए शुरुआती मार्गदर्शिका में इंगित कर सकता है, या मुझे कुछ सुराग दे सकता है?एसबीटी 0.10 और आईडीईए

मेरा पसंदीदा आईडीई आईडीईए है। IDEA Plugins page पर निर्देश के अनुसार मैंने sbt-idea चलाया है। फिलहाल मैं थोड़ा उलझन में हूं क्योंकि

  • कोई स्रोत फ़ोल्डर्स नहीं बनाया गया है - मुझे कहां/कैसे बनाना है और एसबीटी को कहां देखना है?
  • स्कैला 2.8.1 का उपयोग करने का प्रयास क्यों कर रहा है, जब मैंने build.sbt फ़ाइल में scalaVersion := "2.9.0" डाल दिया है? इसका मतलब है कि आईडीईए object HelloWorld extends App {} को पहचान नहीं पाता है।
  • उपरोक्त प्लगइन पेज पर दिए गए निर्देश "रन रन कॉन्फ़िगरेशन (डिफ़ॉल्ट रन कॉन्फ़िगरेशन सहित) के पहले लॉन्च विकल्पों को बदलने का सुझाव देते हैं। सूचीबद्ध विभिन्न चीजों के लिए 13 अलग-अलग डिफ़ॉल्ट कॉन्फ़िगरेशन हैं - कौन सा बदलना है? क्या मुझे एक नया निर्माण करना चाहिए? क्या इस परियोजना के लिए ये डिफ़ॉल्ट कॉन्फ़िगरेशन हैं या क्या यह मेरी सभी अन्य परियोजनाओं पर प्रतिकूल प्रभाव डालेगा जो एसबीटी का उपयोग नहीं करते हैं?

धन्यवाद।

उत्तर

16

यह मेरे लिए काम किया:

पहले प्राप्त एसबीटी और जनरल-विचार प्लगइन जा रहा ...

  1. एसबीटी-launch.jar डाउनलोड करें और इसे शुरू करने पर वर्णित के रूप में के लिए स्क्रिप्ट बनाने SBT Github wiki
  2. अपनी नई परियोजना, जैसे कि (लिनक्स पर)// myCode/myNewProject के लिए एक निर्देशिका बनाएं और उस निर्देशिका में बदलें
  3. रन sbt कमांड। इसे स्कैला पुस्तकालयों को डाउनलोड करना चाहिए और 'प्रोजेक्ट' और 'लक्ष्य' निर्देशिका बनाना चाहिए।
  4. 'प्रोजेक्ट' निर्देशिका में बदलें। इस तरह के ~/myCode/myNewProject के रूप में वापस अपने मुख्य परियोजना निर्देशिका के लिए

    resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/" 
    
    addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.0.0") 
    
  5. बदलें:

  6. निम्नलिखित लाइनों के साथ इस निर्देशिका में एक नई फ़ाइल 'build.sbt' बनाएं, sbt-idea plugin Github wiki पर वर्णित है। sbt चलाएं। इसे जेन-विचार प्लगइन डाउनलोड करना चाहिए।

  7. एसबीटी कंसोल (जो अब चलाना चाहिए) से, gen-idea कमांड चलाएं। इसे आईडीईए परियोजना निर्देशिका बनाना चाहिए। मेरे लिए, यह भी गंभीर चेतावनियों को उत्सर्जित करता है।

अब

  1. ओपन विचार प्राप्त आईडिया एसबीटी सांत्वना प्लगइन जा रहा है ... और प्लगइन प्रबंधक और पुन: प्रारंभ विचार से "एसबीटी" प्लगइन स्थापित। (ध्यान दें यह आईडीईए प्लगइन है, ऊपर वर्णित एसबीटी प्लगइन नहीं है।) एसबीटी प्लगइन as described on its wiki कॉन्फ़िगर करें (कॉन्फ़िगरेशन चलाएं, sbt-launch.jar आदि का स्थान)।
  2. आईडीईए में ताजा जेनरेट आईडीईए प्रोजेक्ट खोलें।
  3. sbt wiki under 'Directory Layout' पर वर्णित अनुसार अपेक्षित डिफ़ॉल्ट निर्देशिकाओं में अपना कोड और अन्य चीज़ें रखें। आपको इन निर्देशिकाओं को स्वयं बनाने की आवश्यकता है - एसबीटी उन्हें स्वचालित रूप से नहीं बनाता है। 'Src' और 'test' निर्देशिकाएं समान रूप से 'प्रोजेक्ट' और 'लक्ष्य' निर्देशिकाओं के समान स्तर पर होनी चाहिए जो एसबीटी बनाई गई हैं।
  4. एक नई 'build.sbt' फ़ाइल बनाएं और इसे ~/myCode/myProject (या जिसे आपने इसे कहा है) में डाल दें। के बाद से मैं सिर्फ एसबीटी पता लगाना कर रहा हूँ, मेरा अब तक सरल है - बस एक निर्भरता के रूप में scalatest नामांकित करता है और स्काला 2.9 का उपयोग करता है:

    name := "myProject" 
    
    version := "0.1" 
    
    organization := "me" 
    
    libraryDependencies += "org.scalatest" % "scalatest_2.9.0" % "1.6.1" 
    
    scalaVersion := "2.9.0" 
    
  5. आईडिया स्क्रीन के तल पर एसबीटी कंसोल में reload आदेश डालें। यह आपके लिए स्केलेटेस्ट और स्कैला 2.9 डाउनलोड करना चाहिए। शायद आपको 'अपडेट' भी चलाने की ज़रूरत है।

+3

धन्यवाद। 'Build.sbt' फ़ाइल को चरण 5 में '~/.sbt/plugins /' में रखना बेहतर हो सकता है क्योंकि विकी सुझाव देता है तब से आपको प्रत्येक प्रोजेक्ट के लिए ऐसा करने की ज़रूरत नहीं है ... आपके पास विंडोज़ पर है कमांड लाइन का उपयोग करके, इस निर्देशिका को 'उपयोगकर्ता \ yourname \\' में स्वयं बनाने के लिए। वैसे भी, अब मैंने sbt विकी में निर्देशिका लेआउट के अनुसार फ़ोल्डर सेट अप किए हैं, यह ठीक काम करता है! –

+0

जानकारी: एसबीटी-0.11.2 और एसबीटी-विचार 0.11.0 के साथ ठीक काम करता है – ron

0

मैं सामान्य रूप से src को "src/test/scala" और "src/main/scala" फ़ोल्डर में डालता हूं। sbt-idea इस फ़ोल्डर्स एएस स्रोत/टेस्ट फ़ोल्डर को विचार में जोड़ देगा।

एसबीटी को स्कैला 2.8.1 की आवश्यकता है लेकिन इस संस्करण के पास आपके कोड के संस्करण से कोई लेना देना नहीं है। यदि आप कुछ स्रोत एसबीटी संकलित करने का प्रयास करते हैं तो स्कैला 2.9.0 डाउनलोड होगा।

+0

sbt-idea ने इसे चलाने के दौरान कोई स्रोत फ़ोल्डर्स नहीं जोड़ा। यह बाहरी पुस्तकालयों में स्कैला के दोनों संस्करणों को रखता है लेकिन यह अभी भी ऐप क्लास को नहीं पहचानता है। –

4

मैंने इसके बारे में very quick guide लिखा था। यह एक एसबीटी गाइड होने का इरादा है - इसके लिए SBT Wiki को हरा करने का कोई तरीका नहीं है। यह भी व्यर्थ होगा, क्योंकि कोई भी विकी में ही योगदान दे सकता है।

लेकिन, मुझे लगता है कि मेरी बहुत तेज़ मार्गदर्शिका आपको प्राप्त करेगी और आप चाहेंगी।

निर्देशिका निर्माण के लिए, मुझे जवाब मिला कि एसबीटी आईडीई को संभालने की अपेक्षा करता है - मुझे वास्तव में उस रवैये को पसंद नहीं है, लेकिन एक प्लगइन नौकरी कर सकता है। आप देखेंगे कि मैं एसबीटी ग्रहण प्लगइन स्थापित करता हूं, इसलिए यह मेरे लिए यह करेगा, भले ही मैं आईडीईए का उपयोग करता हूं (जब मैं आईडीई का उपयोग करता हूं)।

यह भी ध्यान दें कि, आदर्श रूप से, आप एसबीटी के लिए आईडीईए प्लगइन दोनों का उपयोग करते हैं, जिसका आपने उल्लेख किया है, और IDEA के लिए एसबीटी प्लगइन। प्लगइन की सूची के लिए here देखें।

जब तक आईडीईए प्लगइन बहुत विकसित नहीं हुआ है, तो आपको वास्तव में एसबीटी से आईडीईए कॉन्फ़िगरेशन उत्पन्न करने की आवश्यकता है - आईडीईए आपकी कॉन्फ़िगरेशन को "पढ़ा नहीं जाएगा"। आईडीईए के लिए एसबीटी प्लगइन यही है। इसे स्थापित करें, और sbt gen-idea। मैं उम्मीद करता हूं कि आपके द्वारा उल्लिखित समस्या का समाधान होगा।

नोट, हालांकि, स्केल का संस्करण जो आप अपने प्रोजेक्ट को संकलित करने के लिए उपयोग करते हैं और एसबीटी स्वयं के लिए उपयोग किए जाने वाले स्कैला के संस्करण को अलग करते हैं। यह कोई समस्या नहीं है, यह अपेक्षा की जाती है। मुझे आपके प्रश्न से निश्चित नहीं है कि आपने जो 2.8.1 संस्करण का उल्लेख किया है वह एसबीटी द्वारा उपयोग किया जाता है, या आईडीईए द्वारा उपयोग किया जाने वाला एक - या यहां तक ​​कि कोई भी आपके प्रोजेक्ट को संकलित करने के लिए उपयोग किया जाता है, यह दर्शाता है कि कुछ काम नहीं कर रहा है।

आपने जो उदाहरण दिया है, वैसे भी आपने अपना उदाहरण दिया है?यदि आप जावा सम्मेलन का पालन करते हैं, तो आपको मेवेन-स्टाइल निर्देशिका पदानुक्रम का पालन करना चाहिए, जिसका अर्थ है कि इसे src/main/scala/ पर रखें, और संभावित रूप से पैकेज से संबंधित एक उपनिर्देशिका।

और आईडीईए पर जाने से पहले, यह सुनिश्चित करने के लिए, एसबीटी के साथ संकलन करने का प्रयास करें।

+0

धन्यवाद। मैंने आपकी मार्गदर्शिका देखी, जो मददगार था, लेकिन मुझे नहीं पता था कि आप निर्देशिका बनाने के लिए सिर्फ ग्रहण प्लगइन चला रहे थे!मैंने पहले मैवेन का उपयोग नहीं किया है इसलिए मैं वहां संरचना से वास्तव में परिचित नहीं हूं। मैंने अपनी स्रोत फ़ाइलों को 'प्रोजेक्ट' निर्देशिका में रखा था और यह काम नहीं किया था, लेकिन यह तब होता है जब मैं उन्हें सही जगह पर ले जाता हूं! –

+0

@ लुइगी उस मामले में, "[स्कैला एप्लिकेशन संरचना] (http://stackoverflow.com/questions/5910791/scala-plication- संरचना)" प्रश्न पर एक नज़र डालें। विस्तृत गाइड और उपयोगी लिंक के लिए –

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