2016-04-21 6 views
8

अगर मैं गलत हूं, तो मुझे सही करें, लेकिन एक मिरर का उपयोग सभी ट्रैफ़िक को एक विशिष्ट भंडार URL पर रीडायरेक्ट करने के लिए किया जाता है और बाकी सब कुछ अवरुद्ध करता है (मेवेन सेंट्रल रेपो सहित)।मेवेन सेटिंग्स.एक्सएमएल फ़ाइल में मिरर क्या है?

अब क्या होगा यदि मेरे पास http://a.com:8081 पर दर्पण है और http://b.com:8081 पर एक भंडार है। क्या दूसरा यूआरएल कभी भी इस्तेमाल होगा? मुझे लगता है कि जवाब एक नंबर है। क्या आपके पास कई दर्पण हो सकते हैं?

उत्तर

9

मुझे सही अगर मैं गलत हूँ, लेकिन एक दर्पण एक विशेष भंडार URL का संपूर्ण ट्रैफ़िक पुनर्निर्देशित और बाकी सब कुछ (Maven केंद्रीय रेपो सहित) ब्लॉक करने के लिए प्रयोग किया जाता है।

यह पूरी तरह से सही नहीं है। कलाकृतियों को मेवेन द्वारा उन्हें repositories परिभाषित करके डाउनलोड किया जाता है। उन भंडारों को परियोजना के पीओएम या मेवेन सेटिंग्स में परिभाषित किया गया है। लेकिन, जैसा कि Mirror documentation में निर्दिष्ट है:

हालांकि, आप प्रोजेक्ट फ़ाइलों को बदले बिना किसी विशेष भंडार के लिए वैकल्पिक दर्पण का उपयोग करना चाह सकते हैं।

के दस्तावेज़ से उदाहरण लेते और उस पर टिप्पणी करते हैं:

<mirrors> 
    <mirror> 
    <id>UK</id> 
    <name>UK Central</name> 
    <url>http://uk.maven.org/maven2</url> 
    <mirrorOf>central</mirrorOf> 
    </mirror> 
</mirrors> 

यह एक एकल दर्पण का उपयोग किया जाता होगा जब Maven Maven सेंट्रल से निर्भरता लाने के लिए चाहते हैं परिभाषित करता है। आइए मान लें कि आपके पास 2 वर्तमान भंडार हैं, जो मेवेन सेंट्रल और कस्टम रेपो ए हैं। निम्नलिखित क्या होता है:

  1. आप एक आर्टिफैक्ट पर निर्भरता घोषित कर रहे हैं;
  2. मैवेन आपके परिभाषित भंडारों के अंदर उस निर्भरता की तलाश करेगा, इसलिए यह भंडार ए और मेवेन सेंट्रल के अंदर इसकी तलाश करेगा;
  3. मान लें कि यह ए के साथ शुरू होता है: यह उस रिपॉजिटरी के लिए परिभाषित यूआरएल को हिट करेगा, जैसा कि आप उम्मीद करेंगे। तो मान लें कि यह वहां नहीं मिला था;
  4. फिर यह मेवेन सेंट्रल के अंदर दिखाई देगा। हालांकि, मैवेन नोटिस करेगा कि उस भंडार के लिए एक दर्पण कॉन्फ़िगर किया गया था। यह repo1.maven.org पर मेवेन सेंट्रल को नहीं मारा जाएगा। इसके बजाय, यह इसे uk.maven.org से लाएगा, जो दर्पण कॉन्फ़िगरेशन तत्व में परिभाषित यूआरएल है।

जैसा कि यह उदाहरण दिखाता है, एक दर्पण केवल कुछ रिपॉजिटरीज़ पर लागू होता है, जिन्हें <mirrorOf> कॉन्फ़िगरेशन तत्व के साथ परिभाषित किया जाता है। पिछले मामले में, हमारे पास <mirrorOf>central</mirrorOf> था जिसका अर्थ है "मिरर मेवेन सेंट्रल"। यह तत्व can have various values, और प्रलेखन gives examples:

उदाहरण:

  • * = सब कुछ
  • external:* = स्थानीय होस्ट पर नहीं और नहीं सब कुछ आधारित फ़ाइल।
  • repo,repo1 = रेपो या repo1 repo1 छोड़कर
  • *,!repo1 = सब कुछ:

अब क्या हुआ अगर मैं http://a.com:8081 करने के लिए एक आईना और http://b.com:8081 के भंडार है। क्या दूसरा यूआरएल कभी भी इस्तेमाल होगा? मुझे लगता है कि उत्तर एक नंबर

उपर्युक्त दिखाता है कि उत्तर कड़ाई से नहीं है। http://a.com:8081 पर दर्पण का उपयोग तब किया जाएगा जब मैवेन उस प्रतिस्थापन में से एक निर्भरता प्राप्त करने का प्रयास करेगा जो इसे दर्पण करता है। यदि यह वास्तव में http://b.com:8081 पर भंडार को प्रतिबिंबित करता है तो http://b.com:8081 पर कोई अनुरोध कभी नहीं किया जाएगा (उन्हें http://a.com:8081 पर रीडायरेक्ट किया जाएगा); लेकिन अगर ऐसा नहीं होता है, तो मैवेन सामान्य रूप से http://b.com:8081 से निर्भरताएं प्राप्त करना जारी रखेगा।


आप एक से अधिक दर्पण मिल सकता है?

हाँ, आप कर सकते हैं।

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