2009-06-24 14 views
27

मुझे अपने संगठन के लिए Maven 2 रिपोजिटरी बनाए रखने में दिलचस्पी है। कुछ पॉइंटर्स और नुकसान क्या हैं जो मदद करेंगे।एक आंतरिक मेवेन रिपोजिटरी बनाए रखने के लिए युक्तियाँ?

अपने कोड जारी करते समय भंडार में अपनी कलाकृतियों को डाउनलोड करने या प्रकाशित करने के मानकों को स्थापित करते समय उपयोगकर्ताओं के लिए दिशानिर्देश क्या हैं? इस प्रकार की चीज़ के लिए आपके पास किस प्रकार के शासन/नियम हैं? आप इसके डेवलपर की मार्गदर्शिका/दस्तावेज़ीकरण में इसके बारे में क्या शामिल करते हैं?

अद्यतन: हम नेक्सस खड़े हो गए हैं और इसके साथ बहुत खुश हैं - अधिकांश सालों के दिशानिर्देशों का पालन करते हुए और उन्हें कोई परेशानी नहीं हुई है। इसके अलावा, हमने हडसन सीआई सर्वर के माध्यम से स्नैपशॉट कलाकृतियों के उपयोग और स्वचालित निर्माण/तैनाती को प्रतिबंधित कर दिया है। हडसन सभी अपस्ट्रीम/डाउनस्ट्रीम परियोजना निर्भरताओं का विश्लेषण कर सकते हैं, इसलिए अगर संकलन समस्या, परीक्षण विफलता, या कुछ अन्य उल्लंघन निर्माण को तोड़ने का कारण बनता है, तो कोई तैनाती नहीं होगी। मेवेन 2/मेवेन 3 में स्नैपशॉट तैनाती करने से थके रहें, क्योंकि मेटाडेटा दो संस्करणों के बीच बदल गया है। "हडसन केवल" स्नैपशॉट परिनियोजन रणनीति इसे कम कर देगी। हम रिलीज प्लगइन का उपयोग नहीं करते हैं, लेकिन स्नैपशॉट को रिलीज़ करने के लिए जाने पर Versions plugin के आसपास कुछ नलसाजी लिखी है। हम m2eclipse का भी उपयोग करते हैं और ऐसा लगता है कि नेक्सस के साथ बहुत अच्छी तरह से काम करना प्रतीत होता है, क्योंकि सेटिंग्स फ़ाइल से यह नेक्सस देख सकता है और वहां से लुकअप के लिए इंडेक्स आर्टिफैक्ट जानकारी को जानता है। (हालांकि मुझे उन सेटिंग्स में से कुछ को ट्विक करना पड़ता है ताकि यह हमारे आंतरिक स्नैपशॉट्स को पूरी तरह से इंडेक्स कर सके।) यदि आप ऐसा करने में रूचि रखते हैं तो मैं आपको अपनी कलाकृतियों के साथ एक स्रोत जार को एक मानक अभ्यास के रूप में तैनात करने की भी सिफारिश करता हूं। हम इसे एक सुपर पीओएम में कॉन्फ़िगर करते हैं।

UPDATE2: मैं एक Maven भंडार प्रबंधक के लिए विभिन्न उपयोग के लक्ष्यों के साथ this Sonatype whitepaper जो गोद लेने/परिपक्वता के विभिन्न चरणों का विवरण, प्रत्येक का सामना करना पड़ा।

उत्तर

27

मैं कम से कम चार भंडारों के साथ एक नेक्सस सर्वर स्थापित करने की अनुशंसा करता हूं। मैं artifactory की सिफारिश नहीं करेंगे। नेक्सस का मुफ्त संस्करण तीन समूहों से कम में 20 से कम की एक देव टीम के लिए बिल्कुल ठीक है। यदि आपके पास उससे अधिक उपयोगकर्ता हैं, तो अपने आप को एक एहसान दें और सोनाटाइप रिलीज के लिए भुगतान करें। एलडीएपी एकीकरण खुद के लिए भुगतान करता है।

  1. आंतरिक रिलीज
  2. आंतरिक स्नैपशॉट
  3. आंतरिक 3 पार्टी घर में इस्तेमाल किया कोड है कि बाहरी स्रोतों, या समर्थन 3 पार्टी संस्करणों के लिए से आता है के लिए। जेडीबीसी ड्राइवरों, javax। * ग्राहकों और भागीदारों से सामान और सामान रखो।
  4. एम 2 की तरह सभी सामान्य स्रोतों के लिए
  5. बाहरी प्रॉक्सी आम प्रॉक्सी, codehaus आदि

कॉन्फ़िगर नेक्सस आंतरिक रेपोस

  1. नियमित अंतराल पर पुराने स्नैपशॉट हटाएँ के लिए निम्न कार्य करने
  2. हटाएं रिलीज पर स्नैपशॉट्स
  3. इंडेक्स फाइलें बनाएं। यह स्थानीय बनाता है

एक सामान्य सेटिंग्स.एक्सएमएल फ़ाइल है जो इन चारों और केवल इन चार स्रोतों का उपयोग करती है। यदि आपको सेटिंग फ़ाइल के सामान्य भाग को रखने के लिए इस प्रयास से परे कस्टमाइज़ करने की आवश्यकता है और मतभेदों के लिए प्रोफ़ाइल का उपयोग करें। अपने ग्राहकों को अपनी खुद की सेटिंग्स को रोल करने दें या आप एक मशीन पर बने कोड के साथ समाप्त हो जाएंगे लेकिन किसी अन्य मशीन पर नहीं।

अपने ग्राहकों के लिए एक आम प्रॉक्सी प्रदान करें। नेक्सस में, आप सामान्य मैवेन स्रोतों (अपाचे, जेबॉस, कोडहॉस) में प्रॉक्सी का एक गुच्छा जोड़ सकते हैं और आंतरिक क्लाइंट के सामने एक प्रॉक्सी दिखाई दे सकते हैं। इससे आपके ग्राहकों से स्रोतों को जोड़ना और निकालना बहुत आसान हो जाता है।

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

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

यदि आप किसी मौजूदा गलत कामयाब Maven भंडार, एक 5 वीं रेपोस विरासत कहा जाता है बना सकते हैं और वहाँ पूरे रेपोस डाल है। एक वर्ष पुरानी होने के बाद विरासत से पुरानी फाइलों को हटाने के लिए एक क्रॉन कार्य सेट करें। यह हर किसी को साल से बाहर निकलने और अपने पोम्स को अद्यतन करने देता है।

आंतरिक कलाकृतियों के लिए सम्मेलन नामकरण करने के लिए चिपकने के लिए आसान स्थापित करें। मैं विभाग का समूह आईडी पसंद करता हूं। समारोह। प्रोजेक्ट और उस घटक नाम के लिए एक आर्टिफैक्टआईडी। आंतरिक भंडारों के लिए, कॉम/संगठन/नेट और कंपनी का नाम अप्रासंगिक होने की संभावना है। और गलत अगर कंपनी अपना नाम बदलती है। यह बहुत कम संभावना है कि बिक्री, लेखांकन या सूची विभाग का नाम बदल दिया जाएगा।

+0

महान सलाह, धन्यवाद। – cwash

+2

अपडेट के रूप में, सोनाटाइप ने 2010 की शुरुआत में 1.5 रिलीज के साथ नेक्सस के लिए अपने एलडीएपी समर्थन को खोल दिया। – Ophidian

+1

मौजूदा सामानों के लिए लीगेसी रिपोजिटरी बनाने वाले लोगों के लिए, यहां एक आसान लिंक है: http://blog.sonatype.com/लोग/2010/04/गठजोड़ की नोक से आगे बढ़-कलाकृतियों के बीच-गठजोड़-खजाने / – Conan

3

शायद यह स्पष्ट है, लेकिन, पुनरुत्पादन के लिए, डेवलपर्स को कभी भी कलाकृतियों को ओवरराइट नहीं करना चाहिए, वे नए संस्करण होने चाहिए।

यह अपस्ट्रीम रिपॉजिटरीज़ पर भी लागू होता है। यदि आप अपाचे-कॉमन्स संस्करण 1.2.3 डाउनलोड करते हैं, तो आपको वास्तव में इसे फिर से डाउनलोड नहीं करना चाहिए। फिक्स बाद के संस्करणों से आते हैं, मौजूदा संस्करणों पर लागू नहीं होते हैं।

+0

स्पष्टीकरण के लिए धन्यवाद - मेरा मतलब यह है कि रिलीज प्लगइन का उपयोग एक आर्टिफैक्ट के संस्करण को प्रकाशित करने के संदर्भ में किया गया है, जो कि वे खुद को भंडार के स्वामी हैं। सवाल संपादित करेंगे। – cwash

4

Artifactory का उपयोग करें।

+1

अच्छी सलाह! +1 –

+1

क्यों? यह विकल्पों पर क्या लाभ प्रदान करता है? – cwash

+1

यह उपयोग करने और मुफ्त में बस इतना आसान है।नेक्सस मुक्त संस्करण के लिए सुविधाओं को सीमित करता है, लेकिन यदि यह कोई चिंता नहीं है (या तो सुविधा सेट जो कि अलग या मुक्त भाग नहीं है), यह भी अच्छा है। मैंने 'निश्चित रूप से' गिरा दिया, यह थोड़ा बहुत मजबूत है क्योंकि altCognito ने मुझे बुलाया। – stevedbrown

7

निश्चित रूप से Nexus का उपयोग करें। : पी

मैंने नेक्सस और आर्टिफैक्टरी दोनों का उपयोग किया है। नेक्सस के लिए इंटरफ़ेस बहुत अधिक मजबूत है, यह बहुत अधिक विन्यास योग्य है, और बेशक, द्वारा लिखा गया है, जो मैवेन को बहुत अच्छी तरह से प्रस्तुत करता है।

कहा जा रहा है कि, आर्टिफैक्टरी सभ्य और व्यावहारिक है।

+0

क्या आप उन प्रकार की विशेषताओं को समझा सकते हैं जो इसे पक्षियों-आंखों के स्तर पर मजबूत/विन्यास योग्य बनाते हैं? – cwash

+1

लिंक के लिए धन्यवाद! – cwash

+0

किसी को भी यह पता चला है कि इनमें से कोई भी उपकरण आइवी रेपो को भी बनाए रख सकता है? – skaffman

4

मैं अपने आप को Artifactory उपयोग कर रहा हूँ, और यूजर इंटरफेस और तैनाती/रखरखाव में आसानी के प्यार करता हूँ। उस ने कहा, मैंने नेक्सस का कभी भी उपयोग नहीं किया है, और वास्तव में उचित सुविधा तुलना में आपकी मदद नहीं कर सकता।

  1. अच्छा वेब 2.0 इंटरफ़ेस:

    यहाँ मेरे सिर के ऊपर से कुछ चीजें हैं जो मैं वास्तव में Artifactory के बारे में की तरह (मन नेक्सस में रखने के लिए इन सुविधाओं को भी हो सकता है) कर रहे हैं।

  2. आपको प्रारंभ करने में सहायता के लिए अपने स्थानीय मेवेन भंडार को आयात करने की क्षमता।
  3. सुरक्षा के लिए मौजूदा एलडीएपी सर्वर के साथ एकीकरण की आसानी (मैं प्रमाण पत्र संग्रहित करने के लिए एक एकल भंडार का बड़ा प्रशंसक हूं)।

चाहते हैं को देखते हुए वहाँ वास्तव में केवल दो प्रमुख Maven भंडार कार्यान्वयन है कि वहाँ बाहर है, अगर तुम सच में यकीन है कि आप सही चुनाव किया गया है बनाना चाहते, मैं दोनों में जुटे हैं और अपने आप के लिए निर्णय लेने से अनुशंसा करते हैं जिससे आप बेहतर पसंद ।

+0

आर्टिफैक्टरी बनाम नेक्सस पसंद पर वजन के लिए धन्यवाद ... मैं मानता हूं कि सबसे अच्छा तरीका दोनों की कोशिश कर रहा है। क्या आपके पास विशेष रूप से उपयोग करने के बारे में कोई सलाह है? साथ ही, क्या आपका संगठन किसी भी टक्कर या रोडब्लॉक में चला गया है? – cwash

+0

वास्तव में कोई विशिष्ट सलाह नहीं है, यह इतना आसान था कि वास्तव में इसके लिए बहुत कुछ नहीं था। हमने आर्टिफैक्टरी के साथ किसी भी मुद्दे में भाग नहीं लिया है। –

3

कुछ और विचार करने के लिए:

http://archiva.apache.org/

+0

और यह: http://www.sonatype.com/people/2009/07/from-apache-archiva-to-sonatype-nexus/ –

+1

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

+0

अर्नुद ने लिखा कि ब्लॉग और मूल रूप से इसे फ्रेंच में अपनी निजी साइट पर पोस्ट किया गया। हमने उसे सिर्फ अंग्रेजी में अनुवाद करने के लिए कहा। वह आंशिक कैसे है? –

3

मूल प्रश्न के रूप में (तकनीकी मुद्दों जब एक M2 भंडार के निर्माण पर विचार करना), मैं बनाने की सिफारिश करेंगे भंडार ब्राउज़ करने के लिए केवल पढ़ने के लिए उपयोगकर्ता और प्रशासक उपयोगकर्ता प्रति प्रशासक (जो कहा गया है: उन सभी उपयोगकर्ताओं के लिए केवल पढ़ने के लिए उपयोगकर्ता जो प्रशासक नहीं हैं)। इसके अलावा, मैं समय-समय पर बैकअप छवियों को उत्पन्न करने की सलाह दूंगा (एक दिन में शायद?)। यदि आपका भंडार बड़ा है या आप समय-समय पर अपनी कलाकृतियों को स्थापित करते हैं तो बहुत महत्वपूर्ण है।

अंतिम रिमोट रिपोजिटरी जोड़ते समय अंतिम, लेकिन कम से कम नहीं, आपको समावेश/बहिष्करण फ़िल्टर जोड़ना होगा ताकि भंडार में एक आर्टिफैक्ट लुकअप अधिक तेज़ी से किया जा सके।

विचार करने के लिए कई अन्य मुद्दे हैं, लेकिन मैवेन आंतरिक भंडार के प्रबंधन के दौरान मुझे सामने आने वाले प्रमुख मुद्दे हैं।

रिकॉर्ड के लिए, मैं नेक्सस और आर्टिफैक्टरी दोनों का उपयोग कर रहा हूं; मैं स्पष्ट रूप से बता सकता हूं कि नेक्सस बहुत सरल और ऑपरेटिव है (हालांकि मुझे कभी-कभी उबंटू पर इंस्टॉलेशन प्रक्रिया में समस्याएं होती हैं), इसका मुफ़्त संस्करण आर्टिफैक्टरी के समुदाय (फ्री) संस्करण से प्रतिस्पर्धा नहीं कर सकता है। आर्टिफैक्टरी के भयानक वेब 2 यूआई को छोड़कर, इसकी मुख्य विशेषताएं, जैसे सुरक्षा प्रबंधन, आवधिक बैकअप और अभिगम्यता के मुद्दे नेक्सस के बाहर हैं।

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