2012-07-13 14 views
7

मैं आइवी दस्तावेज के माध्यम से जा रहा हूं और मेरे पास ivy.jar के अंदर पाए गए डिफ़ॉल्ट ivysettings.xml के बारे में एक प्रश्न है।ivysettings.xml: क्या मैं जार को संशोधित किए बिना या पूरी तरह से बदलकर डिफ़ॉल्ट सेटिंग्स को "संशोधित" कर सकता हूं?

मैं बस इतना करना चाहता हूं कि हमारे पास स्थानीय मैवेन रिपोजिटरी में सार्वजनिक भंडार बदल जाए। बस। मैं अपनी परियोजना में ivysettings*.xml फ़ाइलों की प्रतिलिपि बना सकता हूं, और इसे इंगित करने के लिए <ivy:settings> का उपयोग कर सकता हूं, लेकिन यह बहुत सारी चीज़ें डुप्लिकेट करता है। मैं ivy.jar को भी संशोधित कर सकता हूं, लेकिन यह रखरखाव सिरदर्द जोड़ता है। डेवलपर्स को मेरे ivy.jar का उपयोग करना होगा, और यदि हम एक नए संस्करण में जाते हैं, तो मुझे इसे फिर से संशोधित करना होगा।

तो, मैं सभी मानक आइवी सेटिंग्स कैसे रखूं और बस भंडार को उपयोग करने के लिए कैसे स्विच करूं? मैं बस ओवरले चाहता हूं कि मेरे बदलाव पहले से ही आइवी पर हैं।


और दो और सवाल:

  • ivyconf*.xml फ़ाइलें और ivysettings*.xml फ़ाइलों के बीच क्या अंतर है? आइवी में डुप्लिकेट कॉन्फ़िगरेशन क्यों हैं?
  • आइवी पर एक अच्छी किताब क्या है? मैं अभी मैनिंग के एंट इन एक्शन का उपयोग कर रहा हूं जो आइवी को कुछ हद तक सारांश तरीके से कवर करता है और थोड़ा सा दिनांक है। आइवी वेबसाइट पर संसाधन स्वयं भयानक हैं।

उत्तर

1

अंततः इसे समझ लिया।

मैंने जार से ivysettings.xml फ़ाइल की प्रतिलिपि बनाई और थोड़ा सा संशोधन किया। ध्यान दें कि पहली ${ivy.default.settings.dir} को आइवी लता ${ivy.lib.dir} और नहीं में किसी XML फ़ाइल में अंक में शामिल हैं:

<ivysettings> 
<settings defaultResolver="default"/> 
    <include file="${ivy.lib.dir}/ivysettings-public.xml"/> 
    <include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/> 
    <include url="${ivy.default.settings.dir}/ivysettings-local.xml"/> 
    <include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/> 
    <include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/> 
</ivysettings> 

मैं अपने खुद के ivysettings-public.xml जो डिफ़ॉल्ट रूप में ही है, लेकिन अब मेरा संग्रह का root को परिभाषित करता है है।(हाँ, यह अभी के लिए स्थानीय होस्ट कर रहा है, लेकिन मैं इसे एक वास्तविक सर्वर पर सेट कर देंगे एक बार मैं सब कुछ हल):, मेरे build.xml में

<ivysettings> 
    <resolvers> 
     <ibiblio name="public" m2compatible="true" 
       root="http://localhost:8081/artifactory/repo" /> 
    </resolvers> 
</ivysettings> 

अब, मैं निम्नलिखित है:

<property name="ivy.lib.dir"  value="${basedir}/ivy.lib"/> 

<taskdef uri="ivylib:org.apache.ivy.ant" 
    resource="org/apache/ivy/ant/antlib.xml"> 
    <classpath> 
     <fileset dir="${ivy.lib.dir}"> 
      <include name="ivy.jar"/> 
      <include name="ivy-*.jar"/> 
     </fileset> 
    </classpath> 
</taskdef> 

<ivy:configure file="${ivy.lib.dir}/ivysettings.xml" override="true"/> 

ऐसा लगता है कि यह चाल है।

+0

आपको सामान्य ivysettings.xml की प्रतिलिपि नहीं लेनी चाहिए। आप जो मैंने अपने उत्तर में लिखा था, शामिल कर सकते हैं। और फिर वह करें जो आपको करना होगा। मुझे हालांकि कहना है। ये मूल बातें apach-ivy डाउनलोड करने योग्य स्रोत के अंदर उदाहरणों में शामिल हैं। –

6

यह मेरा ivysettings.xml फ़ाइल

<ivysettings> 
    <include url="${ivy.default.settings.dir}/ivysettings.xml"/> 
    <resolvers> 
     <chain name="download-chain" changingPattern=".*" checkmodified="true" > 
      <ibiblio name="maven" m2compatible="true" /> 
     </chain> 
    </resolvers> 
</ivysettings> 

सूचना है कि मैं अपने अतिरिक्त रिसोल्वर यहाँ लिख सकते हैं, लेकिन मानक है, जो URL में इंगित किया गया है से सब कुछ का उपयोग करें। यह ivys.jar फ़ाइल में ivysettings.xml से सेटिंग्स लोड करेगा।

ivyconf * .xml के रूप में। मुझे लगता है कि अब इसे हटा दिया गया है। Ivysettings यह करने का नया तरीका है।

संसाधन बहुत भयानक हैं। मैं पूरी तरह से उस पर सहमत हूं। हालांकि, stackoverflow.com में बहुत सारे उत्तर वर्बोज़ थे और वास्तव में समस्याओं का अनुमान लगाने की कोशिश करते थे

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

+0

मैं जानता हूँ कि यह मेरे समय लगेगा यह लेने के लिए, लेकिन फिर भी बहुत मूल बातें खराब समझाया गया है। यह पहला सवाल होगा यदि कोई व्यक्ति होगा तो –

+0

क्या मुझे यह अधिकार मिल जाएगा: को ivysettings.xml में इंगित करें जार? क्योंकि मैंने कभी भी वैरिएबल ivy.default.settings.url को सेट नहीं किया है और मेरे पास मेरे फाइल सिस्टम पर कहीं भी ivysettings.xml नहीं है। –

+0

जो बहुत समय पहले था, लेकिन -d या -v के साथ चींटी चलाएं और इसमें चर और गुणों के मूल्यों सहित बहुत सारी जानकारी दिखाई देनी चाहिए –

0

अपने build.xml में निम्नलिखित शामिल हैं:

<property name="ivy.settings.dir" value="PATH OF SETTINGS" /> 
<property file="${ivy.settings.dir}/ivysettings.properties" /> 
<ivy:settings file="${ivy.settings.dir}/ivysettings.xml" /> 
संबंधित मुद्दे

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