एक स्थानीय रेपो और "mvan इंस्टॉल" में "mvan तैनात" के बीच अंतर क्या है?


95

मेरी टीम एक आंतरिक टीम मावेन रेपो का उपयोग करती है जिसे अपाचे का उपयोग करके एक विकास सर्वर से साझा किया जाता है। हम एक ही मशीन पर कॉन्टिनम सीआई सर्वर भी चलाते हैं। कॉन्टिनम में मावेन बिल्ड "इंस्टॉल" गोल के साथ चलाए जाते हैं, जो अंतिम विरूपण साक्ष्य को सीधे साझा निर्देशिका में कॉपी करता है।

सवाल यह है कि साझा mvn installलक्ष्य के लिए फ़ाइलों को जोड़ने और तैनाती लक्ष्य (mvn-तैनात प्लगइन) का उपयोग करने में क्या अंतर है ?

यह मुझे लगता है कि mvn deployअतिरिक्त कॉन्फ़िगरेशन बाधाओं का उपयोग करता है, लेकिन मैंने कहीं पढ़ा है कि साझा रेपो में फ़ाइलों को स्थापित करना मावेन के आंतरिक कामकाज से संबंधित किसी कारण के लिए एक बुरा विचार है।

अद्यतन: मैं deployऔर के बीच कार्यात्मक अंतर मिलता है install; मैं वास्तव में निम्न स्तर के विवरणों में अधिक दिलचस्पी रखता हूं कि मावेन रेपो में क्या फाइलें बनाई जाती हैं।

जवाबों:


166

केन, अच्छा सवाल है। मुझे अंतर के बारे में निश्चित परिभाषा में अधिक स्पष्ट होना चाहिए । "इंस्टॉल" और "परिनियोजित" एक निर्माण में दो अलग-अलग उद्देश्यों की सेवा करते हैं। "इंस्टॉल" आपके स्थानीय भंडार में एक विरूपण साक्ष्य को स्थापित करने की प्रक्रिया को संदर्भित करता है। "तैनाती" एक दूरस्थ रिपॉजिटरी के लिए एक विरूपण साक्ष्य को तैनात करने की प्रक्रिया को संदर्भित करता है।

उदाहरण:

  1. जब मैं अपनी मशीन पर एक बड़ा मल्टी-मॉड्यूल प्रोजेक्ट चलाता हूं, तो मैं आमतौर पर "mvan इंस्टॉल" चलाने जा रहा हूं। यह मेरे स्थानीय रिपॉजिटरी में सभी उत्पन्न बाइनरी सॉफ़्टवेयर कलाकृतियों (आमतौर पर JAR) को स्थापित करने जा रहा है। फिर जब मैं निर्माण में अलग-अलग मॉड्यूल का निर्माण करता हूं, तो मावेन स्थानीय भंडार से निर्भरता को पुनः प्राप्त करने जा रहा है।

  2. जब स्नैपशॉट या रिलीज़ को तैनात करने का समय आता है, तो मैं "mvan तैनात" चलाने जा रहा हूं। इसे चलाने से फ़ाइलों को दूरस्थ रिपॉजिटरी या सर्वर पर तैनात करने का प्रयास किया जा रहा है। आमतौर पर मैं नेक्सस जैसे रिपॉजिटरी मैनेजर की तैनाती करने जा रहा हूं

यह सच है कि रनिंग "तैनाती" के लिए कुछ अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता होती है, आपको अपने पीओएम में एक वितरण प्रबंधन अनुभाग की आपूर्ति करनी होगी।


@ तो क्या वास्तव में इसका फायदा है mvn deploy? पहली जगह में आवश्यक अतिरिक्त कॉन्फ़िगरेशन के लिए यह क्या लाभ देता है?
गीक

4
एक दूरस्थ सर्वर के लिए कलाकृतियों को तैनात करने के लिए डिज़ाइन किया गया है। यह इंस्टॉल से पूरी तरह से अलग उपयोग का मामला है।
टिम ओ'ब्रायन

17

मावेन डॉक्स से , ऐसा लगता है कि यह केवल एक अंतर है जिसमें आप पैकेज को स्थापित करते हैं:

  • स्थापित करें - स्थानीय रिपोजिटरी में पैकेज को स्थापित करें, स्थानीय रूप से अन्य परियोजनाओं में निर्भरता के रूप में उपयोग करने के लिए
  • परिनियोजन - एक एकीकरण या रिलीज वातावरण में किया जाता है, अंतिम पैकेज को अन्य डेवलपर्स और परियोजनाओं के साथ साझा करने के लिए दूरस्थ रिपॉजिटरी में कॉपी करता है।

हो सकता है कि सीआई सर्वर में उस "इंस्टॉल" में कुछ भ्रम है, इसे स्थानीय रिपॉजिटरी में स्थापित करता है, जिसे तब आप एक उपयोगकर्ता के रूप में साझा कर रहे हैं?


4

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

"परिनियोजित" लक्ष्य इसे आपके साझा रिपॉजिटरी में अपलोड करता है जब आपका काम समाप्त हो जाता है, और फिर अन्य लोगों द्वारा साझा किया जा सकता है जिन्हें इसकी परियोजना के लिए आवश्यकता होती है।

आपके मामले में, ऐसा लगता है कि "स्थापित करें" तैनाती के प्रबंधन को आसान बनाने के बाद से सीआई के स्थानीय रेपो प्रयोग किया जाता है है साझा रेपो। यदि CI किसी अन्य बॉक्स पर था, तो उसे "परिनियोजित" लक्ष्य का उपयोग करना होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.