2009-09-01 12 views
12

मेरे पास एक पुराना जे 2 ईई एप्लीकेशन (जे 2 ईई 1.3) है, जो ईएआर में पैकेज करता है, और ईएआर में, डब्ल्यूएआरएस और ईजेबी जार हैं। अब ईजेबी जारों में से एक को तीसरी पार्टी लाइब्रेरी जेएआरएस को संदर्भित करने की जरूरत है, तो उन जारों को पैकेज करने के लिए सबसे अच्छी जगह क्या है और कैसे?ईजेबी जार में तीसरे पक्ष के जार को कैसे पैकेज करें?

+2

बहुत बढ़िया सवाल। ईजेबी/ईएआर पैकेजिंग की तैनाती/संरचना WAR से कहीं अधिक कठिन क्यों है ??? यह एक स्वचालित, काफी विशिष्ट, उपयोग केस होना चाहिए। – Roboprog

उत्तर

18

वे रूट पर कान फ़ाइल में जाते हैं या आप उन्हें स्टोर करने के लिए lib निर्देशिका बना सकते हैं। किसी भी प्रोजेक्ट (ईजेबी या डब्ल्यूएआर) को संदर्भित करने के लिए उन्हें क्लास-पथ: मेनिफेस्ट फ़ाइल में शामिल करना होगा।

कान सामग्री

- log4j.jar 
    - lib 
    - commons-lang.jar 
    - MyEJBProj.jar 
    - MyWAR.war 

MyEJBProj सामग्री

- classes 
- META-INF 
    - MANIFEST.MF 

MANIFEST.MF

Manifest-Version: 1.0 
    Class-Path: log4j.jar lib/commons-lang.jar 
+1

आधिकारिक फ़ाइल नाम MANIFEST.MF है, और उस फ़ाइल का स्वरूपण काफी चुनिंदा हो सकता है। आपको एक ही पंक्ति पर सभी सामग्री की आवश्यकता है (या निरंतरता के लिए निम्नलिखित पंक्तियों पर उपसर्ग के रूप में एक एकल स्पेस वर्ण का उपयोग करें), और आपको "," के साथ पथ को सीमित करने की आवश्यकता है। दूसरे शब्दों में: कक्षा-पथ: log4j.jar, lib/commons-lang.jar –

+0

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

+0

MANIFEST.MF के अंत में दो लाइन ब्रेक शामिल करना न भूलें। मुझे एक पुरानी बग याद है जहां यह जरूरी था, क्योंकि अन्यथा उपरोक्त कुछ सामग्री को अनदेखा कर दिया जाएगा ... –

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