2011-09-04 8 views
7

मैं वर्तमान में टाईको द्वारा किए गए मेरे निर्माण (~ 30 बंडल) को प्राप्त करने का प्रयास कर रहा हूं।
मेरे यूनिट परीक्षणों में Mockito का उपयोग करते समय मुझे कुछ भ्रमित समस्याओं का सामना करना पड़ा।
मैंने परीक्षण किए गए बंडल के लिए eclipse-test-plugin खंड खंड के रूप में बनाया है। चूंकि टाइपो को मैनिफेस्ट का उपयोग करके आवश्यक बंडलों को हल करना चाहिए, इसलिए मैंने pom.xml से मॉकिटो पर निर्भरता को हटा दिया।
जब मैं मैनिटो मैकिटो में आवश्यक बंडलों में मॉकिटो जोड़ने की कोशिश करता हूं तो सूचीबद्ध नहीं होता है। मुझे this post मिला और इंडिगो ग्रहण करने के लिए इंगित करने वाला एक लक्षित प्लेटफार्म बनाया।
मैंने मंच विनिर्देशों को शामिल किया है इसलिए मुझे ग्रहण डेल्टा पैक की आवश्यकता नहीं है। तब पहली अजीब चीज होती है। ग्रहण मुझे बता रहा है कि कुछ असंतोषजनक निर्भरताएं हैं और जब मैंने नव निर्मित लक्ष्य प्लेटफ़ॉर्म को ग्रहण के भीतर सक्रिय के रूप में सेट किया है, तो org.osgi.framework आदि जैसे कोई पैकेज ग्रहण द्वारा हल किए जा सकते हैं। लेकिन जब मैं टाइपो और लक्ष्य प्लेटफार्म का उपयोग कर eclipse-product बनाता हूं तो यह काम कर रहा है।टाइको के भीतर मॉकिटो का संदर्भ कैसे लें?

My target-platform

अगर मैं वर्तमान ग्रहण स्थापना सक्रिय मंच के रूप में बंडलों हल कर रहे हैं निर्धारित किया है। मैं नील रिलीज के निम्नलिखित चुनी है:

  • ग्रहण आरसीपी प्लग-इन डेवलपर संसाधन
  • विषुव लक्ष्य अवयव
  • जेट्टी लक्ष्य अवयव

तो मेरा पहला सवाल है "क्या मेरे लक्ष्य-प्लेटफॉर्म के साथ गलत है ताकि टाइपो इसका उपयोग कर सके लेकिन ग्रहण नहीं है? "

मेरी मूल समस्या के करीब आने के लिए (मॉकिटो चल रहा है) मैंने वर्तमान ग्रहण स्थापना को सक्रिय लक्ष्य प्लेटफ़ॉर्म के रूप में सेट किया है। ग्रहण तब org.osgi.framework पैकेज और अन्य को हल कर सकता है।
मैंने ऊपर उल्लिखित पोस्ट में मेरी pom.xml पर फिर से मॉकिटो को पहले हटाई गई निर्भरता को जोड़ा। लेकिन जब भी मैं इसे मैनिफेस्ट में आवश्यक बंडलों में जोड़ने की कोशिश करता हूं तब भी मुझे मॉकिटो नहीं मिल रहा है।

तो मेरा दूसरा प्रश्न है "मैं क्या गलत कर रहा हूं? आप ग्रहण अद्यतन साइट पर प्रकाशित नहीं होने वाले बंडलों का संदर्भ कैसे देते हैं, उदाहरण के लिए मेवेन केंद्रीय भंडार?"

अद्यतन: अपना शोध के दौरान मैं गैर p2 अद्यतन-साइटों अपने लक्षित मंच में से बंडलों सहित करने के दो तरीके पाया:

  1. नेक्सस प्रो
    पेशेवर नेक्सस का संस्करण पी 2-प्रॉक्सी रिपॉजिटरीज का समर्थन करता है जो मैवेन सेंट्रल रिपोजिटरी जैसे डिफ़ॉल्ट मैवेन रिपोजिटरी को पी 2 अपडेट-साइट में लपेट सकता है, लेकिन व्यावसायिक संस्करण प्रति वर्ष लगभग 800 डॉलर खर्च करता है।
  2. ग्रहण-भंडार
    बनाएं आप पैकेजिंगeclipse-repository अपने सभी वांछित बंडलों सहित के साथ एक नया Maven परियोजना बना सकते हैं। बनाया गया आर्टिफैक्ट तब एक सामान्य वेब सर्वर पर तैनात किया जाता है।

अपने लक्ष्य-प्लेटफार्म में आप नेक्सस पी 2-प्रॉक्सी रेपो या वेब होस्टेड पी 2-रेपो का संदर्भ दे सकते हैं।
क्या कोई अन्य तरीकों से जानता है - शायद अधिक सुविधाजनक/कम महंगा?

कृपया मेरी मदद टाइको की भ्रामक दुनिया को समझने में थोड़ा और अधिक ...
अग्रिम धन्यवाद

+1

यह सवाल:

नेक्सस में p2 खजाने के लिए समर्थन के बारे में, मैं समझता हूँ कि नेक्सस के लिए p2 प्लगइन बाद से किया गया मुक्त-स्रोत है बहुत सारे खुले सिरों हैं - आपको इसे एक प्रश्न पर सीमित करने पर विचार करना चाहिए, उदाहरण के लिए "Tycho के साथ Mockito संदर्भ कैसे करें?" – oberlies

+0

मैंने 'p2-maven-plugin' के माध्यम से एक अत्यधिक स्वचालित और साफ तरीके से ग्रहण भंडार बनाने का नया और सुरुचिपूर्ण तरीका सूचीबद्ध करने वाले एक समान प्रश्न का उत्तर जोड़ा है - http://stackoverflow.com/a/24777560/464590 – berezovskyi

उत्तर

3

तो mockito अपने लक्ष्य मंच में नहीं है (और आप एक p2 भंडार में यह नहीं है) , सबसे आसान बात यह है कि संभवतः निर्भरता को अपने पोम में दोबारा जोड़ना है (आपके मेनिफेस्ट से मॉकिटो आयात को हटाए बिना)।

मुझे लगता है कि आप भी लक्ष्य मंच-विन्यास प्लगइन के लिए विन्यास में पोम में निम्नलिखित निर्दिष्ट करने के लिए, की आवश्यकता होगी:

<plugin> 
    <groupId>org.eclipse.tycho</groupId> 
    <artifactId>target-platform-configuration</artifactId> 
    <version>${tycho-version}</version> 
    <configuration> 
     <pomDependencies>consider</pomDependencies> 
    </configuration> 
    </plugin> 

adding a dependency on a pom-first artifact पर निर्देश देखें। (मुझे यकीन नहीं है कि आपको रिज़ॉल्वर निर्दिष्ट करने की आवश्यकता होगी)।