2010-12-03 11 views
40

हमारी कंपनी मेवेन का उपयोग करती है। हम अपने स्नैपशॉट्स और रिलीज को स्टोर करने के लिए Nexus रिपोजिटरी मैनेजर का उपयोग करते हैं।अपने पी 2 भंडारों के प्रबंधन/होस्टिंग के लिए उपकरण?

वर्तमान में, हम एक्लिप्स पर आधारित एक उत्पाद विकसित कर रहे हैं। हम ऐसा करने के लिए Tycho का उपयोग करते हैं।

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

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

हम पाते हैं कि यह प्रक्रिया बहुत बोझिल है। क्या नेक्सस जैसे टूल हैं, जो अधिक सुविधाजनक होंगे?

युपीडी:। वहाँ एक discussion on Tycho Users list

+4

नेक्सस प्रो कुछ पी 2 भंडार सुविधाओं की पेशकश करता है। क्या आपने देखा है कि यह आपकी आवश्यकताओं को पूरा करेगा या नहीं? – RonU

+5

अब यह एक नेक्सस प्रो-केवल सुविधा नहीं है; चूंकि नेक्सस 2.x पी 2 प्लगइन अब खुला स्रोत है और सभी के लिए http://www.infoq.com/news/2012/02/nexus-20 और https://github.com/sonatype/nexus- पी 2-रिपॉजिटरी-प्लगइन –

+3

आपके द्वारा लिंक की गई टाइपो सूची पर चर्चा बहुत पुरानी है। पी 2 रेपो के साथ नेक्सस आपकी मदद करने में सक्षम होना चाहिए। यदि नेक्सस उपयोगकर्ता मेलिंग सूची या यहां पर पूछने में समस्याएं हैं और हम मदद करने की कोशिश करेंगे। –

उत्तर

9
Unzip Repository Nexus Plugin साथ

है, तो आप के बीच टाइको बनाता द्विआधारी कलाकृतियों का आदान प्रदान के लिए Nexus उपयोग कर सकते हैं।

  • टाइको परियोजना एक एक सामान्य Maven परियोजना की तरह अपनी कलाकृतियों को प्रकाशित करता है: परियोजना mvn clean deploy, जो आपके तैनाती Maven नेक्सस पर भंडार में परियोजना की कलाकृतियों अपलोड करता है के साथ बनाया गया है। एकमात्र विशेष आवश्यकता यह है कि परियोजना पी 2 भंडार बनाता है। ऐसा करने का अनुशंसित तरीका eclipse-repository मॉड्यूल है, लेकिन अधिकांश मामलों में "तैनाती योग्य सुविधा" भी काम करनी चाहिए।

  • अपने नेक्सस पर, आपको केवल निम्नलिखित एक-बार कॉन्फ़िगरेशन की आवश्यकता है: तैनात मैवेन रिपोजिटरी (या "रिपोजिटरी समूह" जिसमें रिपोजिटरी शामिल है) के लिए, आपको "अनजिप रिपोजिटरी" प्रकार का वर्चुअल रिपोजिटरी जोड़ने की आवश्यकता है। । यह आभासी भंडार अनपॅक किए गए रूप में तैनाती भंडार से ज़िप कलाकृतियों को दिखाता है।

    उदाहरण: परियोजना एक के p2 भंडार ज़िप http://nexus.corp/nexus/repositories/build.milestones/corp/example/project-a/project-a-repo/1.0.0/project-a-repo-1.0.0.zip पर तैनाती Maven भंडार में है, तो यह http://nexus.corp/nexus/repositories/build.milestones.unzip/corp/example/project-a/project-a-repo/1.0.0/project-a-repo-1.0.0.zip-unzip/ पर खोल दो भंडार में मानक p2 भंडार प्रारूप में उपलब्ध हो जाएगा।

  • टाइपो प्रोजेक्ट बी बाद के यूआरएल को target platform पर जोड़कर प्रोजेक्ट ए से कलाकृतियों का संदर्भ दे सकता है, उदाहरण के लिए एक लक्ष्य परिभाषा फ़ाइल में।

उपरोक्त उदाहरण में, परियोजना बी का संदर्भ एक ही दृष्टिकोण भी स्नैपशॉट के लिए काम करता है क्योंकि खोल दो भंडार "symbolic" versions के लिए समर्थन हासिल है, पिछले तैनात 1.1.0-SNAPSHOT के लिए 1.1.0-SNAPSHOT या की तरह परियोजना ए के रिलीज़ संस्करण कुल मिलाकर उच्चतम संस्करण के लिए भी SNAPSHOT। इन प्रतीकात्मक संस्करणों का उपयोग करके, प्रोजेक्ट बी, उदाहरण के लिए, अपने स्वयं के सीआई निर्माण में, सीआई बिल्ड परिणाम प्रोजेक्ट ए को संदर्भित कर सकता है जिसके परिणामस्वरूप (स्थिर!) पी 2 रिपोजिटरी यूआरएल अपने लक्षित प्लेटफार्म में जोड़ कर।

Disclaimer: अनजिप रिपोजिटरी नेक्सस प्लगइन टाइको प्रोजेक्ट का हिस्सा है, जिसमें से मैं एक कमिटर हूं।

+0

हे ओबरलीज, क्या आप "प्रतीकात्मक" संस्करण के साथ अंतिम विवरण को अधिक विस्तार से समझा सकते हैं? क्योंकि मुझे हमेशा * ../p2.repository/1.0.0-SNAPSHOT/p2.repository-1.0.0-20130124.123220-3.zip-unzip/ "के साथ *। लक्ष्य-परिभाषा में बिल्कुल यूआरआई को speficiy की आवश्यकता है। क्वालीफायर। मुझे क्या चाहिए * * ./p2.repository/1.0.0-SNAPSHOT/p2.repository-1.0.0-SNAPSHOT.zip-unzip/ "जैसे हमेशा एक नवीनतम संस्करण प्राप्त करने के लिए। और इकाइयों-तत्वों के साथ *। लक्ष्य-फ़ाइल में एक ही समस्या आईएसटी है। ऊपर दिए गए आपके उदाहरण में कोई रिलीज या स्नैपशॉट नहीं है (कोई क्वालीफायर नहीं)। यह कैसे करना है? – Timo

+0

अनजिप रिपॉजिटरी फॉर्म के यूआरएल का समर्थन करता है .../p2.repository/1.0.0-SNAPSHOT/p2.repository-1.0.0-SNAPSHOT.zip-unzip/(सामान्य मैवेन रिपॉजिटरीज़ के विपरीत)। लक्ष्य फ़ाइलों में '' के साथ, आप एक स्नैपशॉट संस्करण के नवीनतम संस्करण का संदर्भ सेट कर सकते हैं। – oberlies

+0

आपकी प्रतिक्रिया के लिए धन्यवाद। यह वही है जो मैंने *। लक्ष्य में परिभाषित करने की कोशिश की लेकिन टाइको कहता है: "लक्ष्य लक्ष्य परिभाषा पुन: स्थापना अपवाद: स्थान से मेटाडेटा भंडार लोड करने में विफल: ../p2.repository/1.0.0-SNAPSHOT/p2.repository-1.0.0- स्नैपशॉट .zip-unzip/" कोई विशेष सेटिंग आवश्यक है? क्या यह वेबब्रोसर में भी काम करना चाहिए? – Timo

2

शायद यह थोड़ा देर हो चुकी है, लेकिन मैं वर्तमान में एक ओपन सोर्स (ईपीएल) रिपोजिटरी मैनेजर पर काम कर रहा हूं जो मैवेन और टाइको के साथ एक भंडार में तैनाती के वर्कफ़्लो का समर्थन करता है, और इसे पी 2 रिपोजिटरी के रूप में उपभोग करता है।

मैवेन द्वारा निर्मित बंडलों को तैनात करना भी संभव है (मैवेन टाइको नहीं) और पी 2 मेटाडेटा स्वचालित रूप से जेनरेट हो जाएगा।

इस परियोजना को "पैकेज ड्रोन" और hosted on github कहा जाता है। short introduction video भी है।

+0

प्रतिक्रिया के लिए धन्यवाद। यह थोड़ी देर पहले था। चलो देखते हैं कि अन्य लोग क्या कहते हैं! –

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