2010-06-11 17 views
19

डेस्कटॉप पीसी पर उपयोग के लिए स्कैला एप्लिकेशन को पैकेज करने का सबसे आसान तरीका क्या है? मुझे लगता है कि एक जार फ़ाइल के रूप में होगा।पैकेजिंग और स्केल अनुप्रयोगों को तैनात करना

पल मैं एसबीटी संकलित करने के लिए उपयोग कर रहा हूँ पर और चलाने के कार्यक्रमों

मैं मशीनों कि स्काला स्थापित (और उनके classpath में पुस्तकालय) के लिए समाधान में रुचि रखते हैं, साथ ही उन है कि के रूप में ही होगी जावा।

उत्तर

9

स्कैला एप्लिकेशन को पैकेज करने का सबसे सरल (और सबसे संगत) तरीका, एक जेएआर में पैकेजिंग है (जैसे आप सामान्य जावा अनुप्रयोगों के साथ करते हैं)। जब तक जेएआर में मानक संकलित जावा कक्षाएं होती हैं, तब तक आप "स्कैला" जार चला सकते हैं, भले ही आपके पास बॉक्स में स्कैला रनटाइम न हो (आपको क्लासपाथ पर जावा रनटाइम और स्कैला-लैंग.जर की आवश्यकता है)। आप manifast

Main-Class: mypackage.MyClass 

में (आपके आवेदन की कार्यक्षमताओं के लिए प्रवेश द्वार) मुख्य वर्ग निर्दिष्ट कर सकता है जिससे कि आप केवल java.exe को एक जार नाम गुजर इसे कहते हैं कर सकेंगे।

java -jar myjar.jar 

आप एसबीटी परियोजना परिभाषा में specify the main class कर सकते हैं।

+0

मैं एसबीटी में "पैकेज" कमांड का उपयोग करके इसे दूर करने में कामयाब रहा। मुझे नहीं लगता कि आप परिणामस्वरूप जार फ़ाइल में scala-library.jar को कैसे शामिल करना चाहते हैं? –

+1

JAR को src/main/संसाधनों में रखें, और इसे क्लासपाथ में जोड़ें - >> ओवरराइड वैल manifestClassPath = कुछ ("scala-library.jar") –

+0

हालांकि, अगर आप अपने ऐप में scala-library.jar पैकेज करते हैं जार, यह क्लासलोडर द्वारा बूटस्ट्रैप नहीं किया जाएगा। मैनिफेस्ट अपडेट करने के लिए मैंने ऊपर दिए गए काम का उल्लेख किया है, आपको स्केल-लाइब्रेरी.जर को अपने जार के साथ उसी फ़ोल्डर में रखना होगा। –

3

http://www.scala-sbt.org/sbt-native-packager/index.html

प्लगइन आप प्रारूपों (ज़िप, टार, देब, DMG, एमएसआई, आदि) की एक किस्म में और विभिन्न archtypes में पैकेज करने की अनुमति देता है।

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