निर्भरता के लिए, मैं बस maven dependency copy plugin का उपयोग करता हूं और सभी निर्भरताओं को एक ./lib फ़ोल्डर में कॉपी करता हूं, और class path wildcard का उपयोग करने वाली लॉन्च स्क्रिप्ट प्रदान करता हूं (इस तरह आप अपनी निर्भरताओं को जितना चाहें बदल सकते हैं और आपके पास नहीं है लॉन्च स्क्रिप्ट को बदलने के लिए)। कॉन्फ़िगरेशन फ़ाइलों के लिए, मैंने इसे एक ./config फ़ोल्डर में रखा है और फिर इसे लॉन्च स्क्रिप्ट में अपने ऐप के क्लासपाथ में शामिल किया है (पूर्व स्वीकार्य रूप से केवल जावा 1.6 के लिए काम करता है)।
mystuff.jar launch.sh
./lib
./config
तो मैं बस पूरी बात ऊपर ज़िप और इसे अपने उपयोगकर्ताओं के लिए प्रदान करेंगे:
तो अंत में लगभग सभी मेरे ऐप निम्नलिखित संरचना है। पूरी प्रक्रिया शायद मैवेन का उपयोग करके स्वचालित करना आसान है, लेकिन मैं कबूल करता हूं कि मैं इसे हाथ से करता हूं: पी
यदि आप पसंद करते हैं और लाइसेंस अनुमति देते हैं, तो आप सभी निर्भरताओं को एक ही जार में भी बंडल कर सकते हैं (विस्तारित निर्भरताओं के अंदर) assembly plugin का उपयोग कर। यह जार को भारी बनाने और उपयोगकर्ताओं को एक अद्यतन ऐप देने के लिए जाता है। अधिक मुश्किल। इसके अलावा मुझे कई बार समस्याएं थीं क्योंकि कक्षा फाइलों को अधिलेखित या कुछ ऐसा करने के कारण मैं व्यक्तिगत रूप से ./lib फ़ोल्डर से चिपक जाता हूं।
स्रोत
2010-07-18 19:31:32