2010-07-18 20 views
8

किसी भी आवश्यक जार निर्भरताओं, कॉन्फ़िगरेशन फ़ाइलों और लॉन्च स्क्रिप्ट के साथ जावा स्टैंडअलोन अनुप्रयोगों को तैनात करने के लिए सर्वोत्तम प्रथाओं (और सक्षम करने वाले टूल) क्या हैं?जावा फ़ाइलों को तैनात करना

क्या कोई मेवेन प्लगइन्स है जो बाइनरी रिलीज प्रकाशित करने में आसान बनाता है, ताकि उपयोगकर्ताओं को उदाहरण के लिए मेवेन का उपयोग करने की आवश्यकता न हो?

उत्तर

3

निर्भरता के लिए, मैं बस maven dependency copy plugin का उपयोग करता हूं और सभी निर्भरताओं को एक ./lib फ़ोल्डर में कॉपी करता हूं, और class path wildcard का उपयोग करने वाली लॉन्च स्क्रिप्ट प्रदान करता हूं (इस तरह आप अपनी निर्भरताओं को जितना चाहें बदल सकते हैं और आपके पास नहीं है लॉन्च स्क्रिप्ट को बदलने के लिए)। कॉन्फ़िगरेशन फ़ाइलों के लिए, मैंने इसे एक ./config फ़ोल्डर में रखा है और फिर इसे लॉन्च स्क्रिप्ट में अपने ऐप के क्लासपाथ में शामिल किया है (पूर्व स्वीकार्य रूप से केवल जावा 1.6 के लिए काम करता है)।

mystuff.jar launch.sh 
./lib 
./config 

तो मैं बस पूरी बात ऊपर ज़िप और इसे अपने उपयोगकर्ताओं के लिए प्रदान करेंगे:

तो अंत में लगभग सभी मेरे ऐप निम्नलिखित संरचना है। पूरी प्रक्रिया शायद मैवेन का उपयोग करके स्वचालित करना आसान है, लेकिन मैं कबूल करता हूं कि मैं इसे हाथ से करता हूं: पी

यदि आप पसंद करते हैं और लाइसेंस अनुमति देते हैं, तो आप सभी निर्भरताओं को एक ही जार में भी बंडल कर सकते हैं (विस्तारित निर्भरताओं के अंदर) assembly plugin का उपयोग कर। यह जार को भारी बनाने और उपयोगकर्ताओं को एक अद्यतन ऐप देने के लिए जाता है। अधिक मुश्किल। इसके अलावा मुझे कई बार समस्याएं थीं क्योंकि कक्षा फाइलों को अधिलेखित या कुछ ऐसा करने के कारण मैं व्यक्तिगत रूप से ./lib फ़ोल्डर से चिपक जाता हूं।

6

क्या कोई मेवेन प्लगइन्स है जो बाइनरी रिलीज प्रकाशित करने में आसान बनाता है, ताकि उपयोगकर्ताओं को उदाहरण के लिए मेवेन का उपयोग करने की आवश्यकता न हो?

Maven Assembly Plugin का उपयोग अपने प्रोजेक्ट के ज़िप/tar.gz/tar.bz2 के रूप में बाइनरी वितरण बनाने के लिए करें। यह प्लगइन बेहद लचीला है - कुछ जटिलता की कीमत पर - और आप जो कुछ भी चाहते हैं वह कर सकते हैं। फिर deploy (मेवेन अर्थ में) उत्पादित आर्टिफैक्ट, इसे कहीं भी अपलोड करें, आदि

1

लॉन्च 4j है, यदि आप इसे काम करने के लिए प्राप्त कर सकते हैं, तो आपके प्लेटफ़ॉर्म के लिए एक जावा ऐप को निष्पादन योग्य में बंडल कर देगा।

1

यदि आपका परिनियोजन लक्ष्य RPM फ़ाइलों का समर्थन करता है, तो मैं दृढ़ता से सुझाव देता हूं कि आप rpm-maven-plugin की जांच करें। यह आपको आरपीएम पैकेज में निर्भरता समेत अपने प्रोजेक्ट कलाकृतियों को आसानी से मैप करने की अनुमति देता है।

मैं इसे मध्यम पैमाने पर अनुप्रयोग परिनियोजन के लिए बड़ी सफलता के साथ उपयोग कर रहा हूं।

0

Appassembler Maven Plugin पर एक नज़र डालें। आप इसे Assembly Maven Plugin से जोड़ना भी चाह सकते हैं।

निष्पादन योग्य नाम और मुख्य कक्षाओं को निर्दिष्ट करके "प्रोग्राम" का एक सेट उत्पन्न करने के लिए appassembler प्लगइन का उपयोग करें। आप इसे प्रीपेन्ड और एक आदि निर्देशिका भी बना सकते हैं जिसमें आप कॉन्फ़िगरेशन फाइलें जोड़ सकते हैं।

यदि स्टार्ट-अप स्क्रिप्ट और बाइनरी फ़ाइलों की निर्देशिका के साथ निर्देशिका उत्पन्न करना पर्याप्त नहीं है, तो आप अतिरिक्त फ़ाइलों (अपनी कॉन्फ़िगरेशन फ़ाइलों को कहें) को उचित निर्देशिका में कॉपी करने के लिए असेंबली प्लगइन का उपयोग कर सकते हैं और/या पैकेज को अपने पैकेज में उपयोग कर सकते हैं एक संग्रह में आवेदन।

0

आप Oracle की चींटी या Maven स्क्रिप्ट का उपयोग कर सकते हैं:

http://docs.oracle.com/javafx/2/deployment/jfxpub-deployment.htm

ऊपर न केवल अपने कोड संकलन और जार फ़ाइलों पैदा करेगा, लेकिन यह भी बाइनरी निष्पादन (विंडोज़ exe फ़ाइल या मैक अनुप्रयोग फ़ाइल बनाएगा)। यह देशी इंस्टॉलर भी बना सकता है। इसके अतिरिक्त यह आपको अपने वितरण के साथ जेवीएम शामिल करने देता है ताकि अंतिम उपयोग जावा को स्थापित करने की आवश्यकता न हो।

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