मैं निम्नलिखितOSGi बंडल बनाम जार निर्भरता
<dependency>
<groupId>com.myspace.order</groupId>
<artifactId>dal</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
और
<dependency>
<groupId>com.myspace.order</groupId>
<artifactId>dal</artifactId>
<version>1.0.0-SNAPSHOT</version>
<type>bundle</type>
</dependency>
दाल विरूपण साक्ष्य ही बीच के अंतर को समझने की कोशिश कर रहा हूँ पैकेजिंग के रूप में बंडल के रूप में निर्दिष्ट किया है:
<packaging>bundle</packaging>
अब जब मैं दाल आर्टिफैक्ट को तैनात करता हूं, तो मुझे इसे रेपो में एक जार के रूप में प्रकाशित किया जाता है (इसके अंदर एक मैनिफेस्ट के साथ)। इस मामले में, दाल पर मेरी निर्भरता क्या होनी चाहिए। क्या यह प्रकार बंडल या जार होना चाहिए? अगर मैं ओएसजीआई कर रहा हूं, तो मुझे लगता है कि बंडल के रूप में निर्दिष्ट प्रकार होना चाहिए। क्या ये सही है? या, क्या मैं यहां एक जार निर्भरता रख सकता हूं?
"उदाहरण के लिए, यदि आप बंडल आप पर निर्भर करता है कर रहे हैं द्वारा निर्यात नहीं संकुल इस्तेमाल करने की कोशिश की शिकायत नहीं करेगा:
लेकिन वैसे भी, अगर आप कुछ और अधिक जानकारी चाहते हैं, इस सवाल का चेक .... " क्या इसका मतलब है कि ओएसजीआई निर्भरता को रनटाइम पर लागू किया गया है (और पता चला है)? मैं सोच रहा था कि संकलन समय पर निर्यात-पैकेज सत्यापित किया गया था। – Sudoer
जब आप ओएसजीआई कंटेनर में बंडल स्थापित करते हैं तो निर्भरता को हल किया जाएगा। चूंकि ओएसजीआई एक गतिशील वातावरण है, आप किसी भी समय एक बंडल स्थापित कर सकते हैं ... यदि बंडल रिजोल्यूड राज्य में जाता है, तो इसे प्रारंभ किया जा सकता है। दूसरे शब्दों में, स्थापना गतिशील संकलन का एक प्रकार है ... यदि बंडल पास हो जाता है, तो यह गारंटी है कि स्थापना के समय, सभी आयात संतुष्ट थे, इसलिए बंडल शुरू हो सकता है। – Renato
कोई भी तरीका नहीं है कि आप वास्तव में इसे इंस्टॉल करने का प्रयास करने से पहले ओएसजीआई आपके बंडल निर्भरताओं को हल कर सकता है क्योंकि यह स्थापना के समय उपलब्ध बंडलों के सेट पर निर्भर करेगा।दूसरी तरफ, मैवेन सामान्य जावा संकलन प्रक्रिया का उपयोग करता है, ओएसजीआई दृश्यता नियमों को अनदेखा कर रहा है ... यह मुख्य अंतर है। – Renato