मैं मावेन प्रलेखन पढ़ रहा हूं और 'उबर-जार' नाम से आया हूं।
उबेर-जार का क्या अर्थ है और इसकी विशेषताएं / फायदे क्या हैं?
मैं मावेन प्रलेखन पढ़ रहा हूं और 'उबर-जार' नाम से आया हूं।
उबेर-जार का क्या अर्थ है और इसकी विशेषताएं / फायदे क्या हैं?
जवाबों:
Über
के लिए जर्मन शब्द above
या over
(यह वास्तव में अंग्रेजी के साथ संज्ञानात्मक है over
)।
इसलिए, इस संदर्भ में, एक uber-jar एक "ओवर-जार" है, एक साधारण JAR (ए) से एक स्तर ऊपर, एक के रूप में परिभाषित किया गया है जिसमें एक एकल JAR फ़ाइल में आपके पैकेज और इसकी सभी निर्भरता दोनों शामिल हैं । नाम को उसी स्थिर से आने के लिए सोचा जा सकता है जैसे कि अल्ट्रैजेक, सुपरमैन, हाइपरस्पेस और मेटाडेटा, जो सभी "सामान्य से परे" के समान अर्थ रखते हैं।
लाभ यह है कि आप अपने uber-jar को वितरित कर सकते हैं और इस बात की परवाह नहीं कर सकते हैं कि गंतव्य पर निर्भरताएं स्थापित हैं या नहीं, क्योंकि आपके uber-jar की वास्तव में कोई निर्भरता नहीं है।
Uber-jar के भीतर आपके अपने सामान की सभी निर्भरताएं उस uber-jar के भीतर भी हैं । जैसा कि उन निर्भरताओं के सभी निर्भरताएं हैं। और इसी तरह।
(ए) मुझे शायद यह नहीं बताना चाहिए कि एक जावा डेवलपर के लिए एक जार क्या है लेकिन मैं इसे पूर्णता के लिए शामिल करूंगा। यह एक जावा संग्रह है, जो मूल रूप से एक एकल फ़ाइल है जिसमें आम तौर पर संबद्ध मेटाडेटा और संसाधनों के साथ कई जावा वर्ग की फाइलें शामिल हैं।
über
और over
: कर रहे हैं पुराने युरोपीय में एक व्यवस्थित मुखर पारी जो भी इन शब्द जोड़े में मनाया जा सकता का परिणाम geben/give
, leben/live
, haben/have
, heben/heave
और कई और अधिक।
ऊबर जार को वसा जार यानी जार पर निर्भरता के साथ भी जाना जाता है ।
एक uber जार के निर्माण के तीन सामान्य तरीके हैं:
Paxdiablo की परिभाषा वास्तव में अच्छी है।
इसके अलावा, कृपया एक uber-jar वितरित करने पर विचार करें, कभी-कभी काफी दिलचस्प होता है, यदि आप वास्तव में एक सॉफ़्टवेयर वितरित करना चाहते हैं और ग्राहक को खुद से निर्भरता डाउनलोड नहीं करनी है। ड्रॉ बैक के रूप में, यदि उनकी स्वयं की नीति कुछ लाइब्रेरी के उपयोग की अनुमति नहीं देती है, या यदि उन्हें कुछ अतिरिक्त-घटकों (slf4j, सिस्टम कंप्लेंट लिबास, आर्क स्पेशल स्पेशल लिबास, ...) को बांधना है, तो यह संभवतः उनके लिए मुश्किलें बढ़ा देगा। ।
आप ऐसा कर सकते हैं:
एक क्लीनर समाधान अलग से तेर पुस्तकालय प्रदान करना है; maven-shade-plugin के पास इसके लिए पूर्वनिर्धारित विवरणक है। यह करने के लिए अधिक जटिल नहीं है (मावेन और इसके प्लगइन के साथ)।
अंत में, OSGI बंडल का उपयोग करने के लिए वास्तव में अच्छा समाधान है। उस पर बहुत सारे अच्छे ट्यूटोरियल हैं :)
आगे के विन्यास के लिए, कृपया उन विषयों को पढ़ें:
स्कीनी - इसमें केवल वही बिट्स होते हैं जो आप सचमुच अपने कोड संपादक में टाइप करते हैं, और कुछ भी नहीं।
पतला - उपरोक्त सभी में आपके ऐप के ऐप की प्रत्यक्ष निर्भरता (db ड्राइवर, यूटिलिटी लाइब्रेरी आदि) शामिल हैं।
खोखले - पतले का विलोम - आपके ऐप को चलाने के लिए केवल बिट्स की आवश्यकता होती है, लेकिन इसमें ऐप ही नहीं होता है। मूल रूप से एक पूर्व-पैक किया गया "ऐप सर्वर", जिसे आप बाद में अपने ऐप को पारंपरिक जावा ईई ऐप सर्वरों के समान शैली में, लेकिन महत्वपूर्ण अंतरों के साथ तैनात कर सकते हैं।
फैट / उबेर - शामिल बिट आप सचमुच अपने आप को लिखने प्लस अपने अनुप्रयोग के प्रत्यक्ष निर्भरता प्लस बिट्स "अपने आप ही" अपने अनुप्रयोग चलाने के लिए की जरूरत है।
स्रोत: Dzone से लेख
से पुनर्प्राप्त: https://stackoverflow.com/a/57592130/9470346