java - एक्लेप्से में डिप्लॉयमेंट असेंबली और जे 2 ईईई मॉड्यूल निर्भरता के बीच का अंतर




eclipse java-ee (2)

एक युद्ध को इकट्ठा करते समय, ग्रहण केवल आपके बिल्ड पथ निर्भरताओं को देखकर नहीं बता सकता है कि क्या वे कुछ ऐसी हैं जिन्हें युद्ध की WEB-INF / lib निर्देशिका में बंडल किया जाना चाहिए या यदि वे कुछ हैं जो आपके सर्वर क्लासपाथ पर उपलब्ध होने की उम्मीद करते हैं। उन मामलों में अंतर करने के लिए अतिरिक्त मेटाडेटा की आवश्यकता है

यदि आप अपनी समस्याओं को देखते हैं, तो आपको ऐसे कई चेतावनियां दिखाई देंगी जो इस तरह दिखें:

"कक्षापथ एंट्री [कुछ] निर्यात या प्रकाशित नहीं की जाएगी ..."

इन पर राइट क्लिक करें और "क्विक फिक्स" चुनें आप उपलब्ध फिक्स के साथ एक डायलॉग देखेंगे उनमें से एक ऐसा कुछ कहने वाला है, "प्रकाशित / निर्यात निर्भरता के रूप में जुड़े वर्गपथ प्रविष्टि चिह्नित करें" ...। उस विकल्प का उपयोग करें

उपरोक्त विधानसभा में शामिल होने के लिए निर्भरता को टैग करने के लिए आपके जावा प्रोजेक्ट की। स्लैसपाथ फ़ाइल में थोड़े बदलाव लाएंगे। आप किसी WAR फ़ाइल को निर्यात करके और WEB-INF / lib फ़ोल्डर की सामग्री की जांच करके बिना परीक्षण कर सकते हैं।

जावा EE डेवलपर्स के लिए ईक्लीपस 3.7 इंडिगो का उपयोग करते समय, डिप्लॉयमेंट असेंबली नामक कुछ है। मुझे Google पर पता चला और समझ गया कि यह जे 2 ईईई मॉड्यूल निर्भरताओं के समान है जहां हम जार का चयन कर सकते हैं और जो कि युद्ध के मामले में ईएआर फ़ोल्डर में या वेब-आईएनएफ / बीबी में जाता है। अब मेरे पास संदेह है,

मेरे पास JavaProject निर्भरताएं हैं I मैंने क्लासपाथ वेरिएबल के माध्यम से सभी आश्रित जार जोड़ दिए हैं। अब निर्भरता परियोजना को मेरे वेब प्रोजेक्ट टेस्टवेबप्रोजेक्ट के लिए निर्भरता के रूप में जोड़ा गया है। वेब प्रोजेक्ट का संकलन सही है, लेकिन रनटाइम के दौरान मुझे कोई त्रुटि मिलती है क्योंकि कुछ जार नहीं मिला। मैं इसे मेरे डिप्लॉयमेंट असेंबली ऑफ़ डिपाण्डेंसी प्रोजेक्ट में जार में शामिल कर सकता हूं, जो एक स्टैंडअलोन प्रोजेक्ट है।

सवाल यह है कि, क्यों मुझे तैनाती विधानसभा में जार को ठीक करना पड़ा, पहले, यह एक स्टैंडअलोन प्रोजेक्ट था और दूसरा, अगर मुझे इस तैनाती की विधानसभा नहीं होती, तो यह कैसे तय किया जा सकता है?


पथ का निर्माण - अपने जार का सीधे यहां रखें, यह कोड रनटाइम के लिए उपलब्ध होगा और समय संकलन करेगा।

तैनाती विधानसभा - ग्रहण को उम्मीद है कि इस पथ के तहत परियोजनाओं को बंडल और web-inf / lib फ़ोल्डर में .jar के रूप में तैनात किया जाएगा। इसलिए कि यह दोनों समय और चलाने के समय के संकलन के लिए उपलब्ध है। यदि प्रोजेक्ट को परिनियोजन असेंबली में तैनात नहीं किया गया है तो कोड केवल समय संकलन के लिए उपलब्ध है, ग्रहण इसे बंडल नहीं करेगा और रन-टाइम निर्भर परियोजनाओं पर कोड के लिए अनुपलब्ध है।





eclipse-3.5