2011-01-29 17 views
34

साथ सार्वजनिक Maven भंडार मैं एक ivy.xmlउपयोग आइवी लता

<dependencies> 
    <dependency org="commons-lang" name="commons-lang" rev="2.4"/> 
    <dependency org="foo-bar" name="superwidgets" rev="1.5"/> 
</dependencies> 

पूरे superwidget सामान http://example.com/m2/ पर एक Maven भंडार में होस्ट किया गया है युक्त है। आईवी दस्तावेज mentions resolvers, लेकिन ऐसा लगता है कि यह एक आईवी भंडार है। मैं केवल एक मॉड्यूल द्वारा उपयोग की जाने वाली मेरी आईवी सेटिंग्स में एक अनौपचारिक मैवेन रिपोजिटरी कैसे जोड़ सकता हूं? (या एक और तरीका डालें, आईवी में मेवेन के <repository> टैग के अनुरूप क्या है?) कुछ भी नहीं, इसलिए मैं अपने ivy.xml में एक-लाइनर की अपेक्षा करता हूं।

उत्तर

43

आप एक ivysettings.xml फ़ाइल मेरी राय में (आइवी बात में resolvers) सूचीबद्ध निम्नलिखित खजाने के साथ जोड़ने के लिए

<ivysettings> 
    <settings defaultResolver="chain"/> 
    <resolvers> 
     <chain name="chain"> 
      <ibiblio name="central" m2compatible="true"/> 
      <ibiblio name="example" m2compatible="true" root="http://example.com/m2/"/> 
     </chain> 
    </resolvers> 
</ivysettings> 

यह निर्भरता घोषणा अलग करने के लिए और अधिक समझ में (ivy.xml) बना देता है की जरूरत है पुनर्प्राप्ति (सेटिंग्स.एक्सएमएल) के तंत्र से। मेवेन में इसकी आवश्यकता नहीं है क्योंकि यह केवल एक प्रकार की भंडार का समर्थन करता है।

तुम सच में फैंसी आप नियंत्रित कर सकते हैं जो respository एक विशेष मॉड्यूल अप में कार्य करता है प्राप्त करना चाहते हैं:

<ivysettings> 
    <settings defaultResolver="central"/> 
    <resolvers> 
     <ibiblio name="central" m2compatible="true"/> 
     <ibiblio name="example" m2compatible="true" root="http://example.com/m2/"/> 
    </resolvers> 
    <modules> 
     <module organisation="foo-bar" name="superwidgets" resolver="example"/> 
    </modules> 
</ivysettings> 
7

मैं इस तरह, श्रृंखलित रिसोल्वर वह भी SpringSource के EBR और Maven सेंट्रल शामिल पसंद करते हैं:

<ivysettings> 
    <settings defaultResolver="spring-chain" /> 
    <resolvers> 
     <chain name="spring-chain"> 
      <url name="com.springsource.repository.bundles.release"> 
       <ivy pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> 
       <artifact pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> 
      </url> 
      <url name="com.springsource.repository.bundles.external"> 
       <ivy pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> 
       <artifact pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> 
      </url> 
      <ibiblio name="ibiblio" m2compatible="true"/> 
     </chain> 
    </resolvers> 
</ivysettings> 

हालांकि मैं उन्हें सीधे उपयोग नहीं करता, मैं create and control my own local Ivy repository पसंद करता हूं।

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