2012-04-17 15 views
5

से स्रोत डाउनलोड करने के लिए आइवी कैसे प्राप्त करें मैं अपनी समस्या का हल ढूंढने की कोशिश करने वाले युगों के लिए चारों ओर खोज कर रहा हूं, लेकिन मेरे द्वारा पोस्ट की गई सभी अन्य पोस्ट या तो काम नहीं करती हैं या मुझसे मेल नहीं खाती हैं स्थिति, तो उम्मीद है कि कोई मुझे कुछ अंतर्दृष्टि दे सकता है।नेक्सस रेपो

मेरे पास एक लाइब्रेरी है जिसे मैं चींटी के साथ बना रहा हूं, जो 2 जार फ़ाइलों को आउटपुट करता है, लाइब्रेरी के संकलित संस्करण वाले सामान्य के रूप में, और दूसरे में केवल स्रोत फाइलें होती हैं।

यह लाइब्रेरी हमारे नेक्सस भंडार में अपलोड किया गया है जिसमें पैकेजिंग सेट जार के साथ है। वास्तविक जार फ़ाइल के लिए मैंने जार में विस्तार सेट किया है और क्लासिफायर रिक्त छोड़ दिया है। स्रोत जार के लिए मैंने जार के स्रोतों और विस्तार के लिए वर्गीकरण सेट किया।

कोई फर्क नहीं पड़ता कि मैं अपनी ivy.xml फ़ाइल के साथ क्या करता हूं, मैं इसे स्रोत जार डाउनलोड करने के लिए नहीं मिल सकता। पदों के आधार पर मैं कहीं और पढ़ा है मैं जोड़ने की कोशिश की:

conf="*->default,sources" 

मेरी निर्भरता को, लेकिन फिर मैं कोई त्रुटि मिलती है: तो यह मूल रूप से मेरी पुस्तकालय उम्मीद कर रही है कहीं न कहीं एक विन्यास के रूप में सूत्रों का कहना है परिभाषित करने के लिए

configuration not found in org#name;version: 'sources' 

? मैंने सोचा कि यह सिर्फ इस तथ्य को उठाएगा कि वर्गीकरण में सूत्रों के लिए क्लासिफायर सेट के साथ एक और आर्टेफैक्ट है।

क्या कोई मुझे अन्य सुझाव दे सकता है कि जिस तरह से मैंने अपनी लाइब्रेरी को नेक्सस में प्रकाशित किया है, या मैंने अपनी आईवी फ़ाइल में अपनी निर्भरता घोषणा कैसे स्थापित की है।

यह मूल Ivy.xml फ़ाइल है जहां मैं नेक्सस में लाइब्रेरी पर अपनी निर्भरता को परिभाषित कर रहा हूं।

<ivy-module version="2.0"> 

    <info organisation="${ivy.organisation}" module="moduleName" /> 

    <configurations> 
     <conf name="pda" description="moduleName for PDA"/> 
     <conf name="server" description="moduleName for server"/> 
    </configurations> 

    <dependencies> 
     <!-- Internal --> 
     <dependency name="utility" org="${ivy.organisation}" rev="latest.integration" conf="${ivy.configuration}"/> 
     <dependency name="myLib" org="my.org" rev="0.0.+"/> 
    </dependencies> 

</ivy-module> 

नीचे टिप्पणी के जवाब में, ivy.configuration संपत्ति चींटी के लिए मेरे build.properties भीतर पीडीए को तैयार है। ग्रहण के लिए मैंने एक गुण फ़ाइल बनाई है और vy.configuration को pda पर भी सेट किया है (इस गुण फ़ाइल को तब ग्रहण के भीतर आइवी सेटिंग्स में संदर्भित किया जाता है)। संकल्प लिया ivy.xml फ़ाइल

Some projects fail to be resolved 
    Impossible to resolve dependencies of ${ivy.organisation}#moduleName;[email protected] 
     unresolved dependency: my.org#myLib;0.0.+: configuration not found in my.org#myLib;0.0.0: 'sources'. It was required from ${ivy.organisation}#moduleName;[email protected] pda 

अद्यतन यहाँ है::

त्रुटि संदेश मैं मिलता है

<?xml version="1.0" encoding="UTF-8"?> 
<ivy-module version="2.0"> 
    <info organisation="my.org" 
     module="myLib" 
     revision="0.0.0" 
     status="release" 
     publication="20120419131909" 
     default="true" 
    /> 
    <configurations> 
     <conf name="default" visibility="public"/> 
    </configurations> 
    <publications> 
     <artifact name="myLib" type="jar" ext="jar" conf="default"/> 
    </publications> 
</ivy-module> 

यह स्पष्ट रूप से बताता है कि क्यों यह स्रोत 'को खोजने में विफल रहा conf। लेकिन मैं इस धारणा के तहत था कि सूत्रों को गोपनीय रूप से जोड़ा जाना चाहिए क्योंकि मैंने नेक्सस को स्रोत जोड़े हैं।

+0

क्या आप अपना ivy.xml प्रिंट कर सकते हैं? – Matt

+0

उपर्युक्त आईवी फ़ाइल के लिए मैं निर्दिष्ट करता हूं कि कौन सी कॉन्फ़िगरेशन मेरी चींटी गुण फ़ाइल में या IclDE में IvyDE का उपयोग कर रहा है (और मेरे मामले में यह पीडीए कॉन्फ़िगरेशन है जो मैं चल रहा हूं) – DaveJohnston

+0

@DaveJohnston मैंने इसे सही ढंग से पढ़ा? आप आईवी के प्रकाशित कार्य का उपयोग नहीं करते हैं, लेकिन मैन्युअल रूप से जार और उपरोक्त ivy.xml को रेपो में कॉपी करते हैं? यदि ऐसा है तो आपके ivy.xml में प्रकाशन टैग गुम हैं, जिन्हें पुनर्प्राप्ति की आवश्यकता है। – oers

उत्तर

2

मैं करने लगते हैं अंत में इसका समाधान है। अगर मैं निम्नलिखित तरीके से मेरी निर्भरता की घोषणा:

<dependency name="myLib" org="my.org" rev="0.0.+"> 
    <artifact type="jar"/> 
    <artifact type="source" m:classifier="sources" conf="pdaDev->sources"/> 
</dependency> 

तो मैं एक नया config जोड़ सकते हैं (ऊपर जैसे pdaDev) जो निर्भरता के स्रोतों config से जोड़ता है। ग्रहण का उपयोग करते समय मैं इसे pdaDev कॉन्फ़िगरेशन का उपयोग करने के लिए कह सकता हूं और यह स्रोत जार में भी खींचता है (यदि यह मौजूद है)।

यह अजीब लगता है कि नेक्सस को हल की गई आईवी फ़ाइल में स्रोत कॉन्फ़िगरेशन शामिल नहीं लगता है जब तक कि यह स्पष्ट रूप से पूछा गया है कि मैंने ऊपर किया है।

0

अपनी आईवी फ़ाइल में दो कॉन्फ़िगरेशन बनाएं। एक बाइनरी के लिए जो आपके क्लासपाथ पर स्रोत जार के लिए दूसरे होना चाहिए।

दूसरे, निर्भरता पर दो विन्यास मैपिंग बनाएँ:

<ivy-module version="2.0"> 
    <info organisation="org.demo" module="demo"/> 
    <configurations> 
     <conf name="compile" description="jars used for compilation classpath"/> 
     <conf name="sources" description="Source jars"/> 
    </configurations> 
    <dependencies> 
     <dependency org="org.slf4j" name="slf4j-simple" rev="1.6.4" conf="compile->default;sources->sources"/> 
    </dependencies> 
</ivy-module> 

नोट:

  • Maven मॉड्यूल आइवी लता द्वारा अनुवादित कर रहे हैं विन्यास की एक मानक सेट है।अधिक विस्तार के लिए देख How are maven scopes mapped to ivy configurations by ivy

अपने चींटी निर्माण के भीतर इस प्रकार आप विन्यास का उपयोग कर सकते हैं:

<target name="init"> 
    <ivy:resolve/> 

    <!-- Populate a compile classpath for use with javac task --> 
    <ivy:cachepath pathid="compile.path" conf="compile"/> 

    <!-- Put source jars in the src directory --> 
    <ivy:retrieve pattern="src/[artifact]-[revision](-[classifier]).[ext]" conf="sources"/> 

</target> 
+0

यह वही है जो मैंने पहले ही कोशिश की है, लेकिन यह शिकायत करता है कि conf depend स्रोत मेरी निर्भरता में नहीं मिला है। स्रोत कॉन्फ़िगरेशन जोड़ने के लिए इसे नेक्सस में जोड़ते समय मुझे अपनी निर्भरता के साथ कुछ करना है? मैंने सोचा कि जब मैं वर्गीकृत स्रोतों के साथ एक आर्टेफैक्ट जोड़ता हूं तो यह स्वचालित रूप से ऐसा करेगा। – DaveJohnston

+0

"स्रोत" कॉन्फ़िगरेशन सभी दूरस्थ मेवेन मॉड्यूल में उपलब्ध होना चाहिए (उपरोक्त मेरे उत्तर में लिंक देखें)। क्या आप अपनी पोस्ट को उस त्रुटि के साथ अपडेट कर सकते हैं जो आपको मिल रही है? इसके अतिरिक्त आपको मुझे अपना कॉन्फ़िगरेशन मैपिंग (ivy.configuration प्रॉपर्टी का मान) बताने की ज़रूरत है .... असल में, मैं वर्तमान में नहीं जानता कि आपकी समस्या को पुन: उत्पन्न कैसे करें ... –

+0

मैंने अपने प्रश्न को त्रुटि संदेश के साथ संपादित किया है I प्राप्त करें और विन्यास मान। – DaveJohnston

2

आप विन्यास के बारे में आइवी बता जब आप कलाकृतियों को प्रकाशित करना चाहिए। उदाहरण के लिए:

<ivy-module version="2.0"> 
    <info organisation="apache" module="commons-lang" revision="2.5" status="release"/> 
    <configurations> 
     <conf name="binary" description="provide only binary files"/> 
     <conf name="development" extends="binary" description="provide binary files with javadoc and sources"/> 
    </configurations> 
    <publications> 
     <artifact name="commons-lang" ext="jar" conf="binary" type="jar"/> 
     <artifact name="commons-lang-javadoc" ext="jar" conf="development" type="javadoc"/> 
     <artifact name="commons-lang-sources" ext="jar" conf="development" type="source"/> 
    </publications> 
</ivy-module> 

जैसा कि आप देख सकते हैं, commons-lang.jar बाइनरी कॉन्फ़िगरेशन के तहत प्रकाशित हुआ। लेकिन कॉमन्स-लैंग-स्रोत और कॉमन्स-लैंग-जावाडोक विकास विन्यास के तहत प्रकाशित हुए।

जब आप निर्भरता को पुनः प्राप्त आप निम्नलिखित ivy.xml उपयोग करना चाहिए:

<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd"> 
    <info organisation="bitrete" module="strongpoint" status="development"/> 
    <configurations> 
     <conf name="binary" description="provide only binary files"/> 
     <conf name="development" extends="binary" description="provide binary files with javadoc and sources"/> 
    </configurations> 
    <publications> 
     <artifact name="strongpoint" ext="jar" type="jar"/> 
    </publications> 
    <dependencies> 
     <dependency org="apache" name="commons-lang" rev="2.5"/> 
    </dependencies> 
</ivy-module> 

और वांछित विन्यास प्रदान करते हैं जब चींटी के साथ हल करने:

तो चारों ओर खेलने का एक बहुत बाद
<property name="ivy.conf" value="binary"/> 
... 
<property name="ivy.conf" value="development"/> 
... 
<ivy:resolve conf="${ivy.conf}"/> 
+0

लेकिन मैं इस कॉन्फ़िगरेशन जानकारी को नेक्सस रेपो में कैसे प्रकाशित करूं? अब तक मैंने चींटी का उपयोग करके कलाकृतियों को प्रकाशित किया है, फिर उन्हें मैन्युअल रूप से नेक्सस पर अपलोड कर दिया है। इसमें यह चुनना शामिल है कि कौन सी फाइलें लाइब्रेरी से संबंधित हैं और वर्गीकृत (उदा। स्रोत) असाइन कर रही हैं। तो नेक्सस में संग्रहीत पुस्तकालय की कॉन्फ़िगरेशन के बारे में जानकारी कहां है? – DaveJohnston

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