scientific - ants facts




फाइलों के सेट के लिए चींटी की जाँच अस्तित्व (2)

आप इस के लिए एक filelist , restrict और condition कार्य के संयोजन का उपयोग कर सकते हैं।

नीचे दिए गए उदाहरण में एक फ़ाइल सूची संपत्ति से अल्पविराम से अलग की गई सूची के साथ बनाई गई है फ़ाइलों की एक सूची को restrict का उपयोग करना जो मौजूद नहीं है पाया जाता है। यह एक ऐसी संपत्ति में रखी जाती है जो सभी फाइलें मिल जाने पर खाली होगी

<property name="myprop" value="path1,path2,path3"/>
<filelist id="my.files" dir="." files="${myprop}" />

<restrict id="missing.files">
  <filelist refid="my.files"/>
  <not>
    <exists/>
  </not>
</restrict>

<property name="missing.files" refid="missing.files" />
<condition property="pathExist" value="true" else="false">
    <length string="${missing.files}" length="0" />
</condition>
<echo message="Files all found: ${pathExist}" />

आप ऐसा कुछ इस्तेमाल कर सकते हैं जिससे ग़लती हुई फाइलों की सूची में विफलता संदेश उत्पन्न हो सकता है:

<fail message="Missing files: ${missing.files}">
    <condition>
        <length string="${missing.files}" when="greater" length="0" />
    </condition>
</fail>

चींटी में, मैं कैसे जांच सकता हूँ कि क्या फाइलों का एक संच (मार्गों की अल्पविराम से विभाजित सूची) मौजूद है या नहीं?

उदाहरण के लिए मुझे यह देखने की आवश्यकता है कि myprop में सूचीबद्ध सभी पथ मौजूद हैं और यदि ऐसा है तो मैं एक संपत्ति pathExist सेट करना चाहता pathExist :

<property name="myprop" value="path1,path2,path3"/>

इसलिए उदाहरण में सभी path1 path2 path3 को pathExist को true पर सेट करने के लिए मौजूद होना चाहिए, अन्यथा false

मुझे पता चला कि एक एकल संसाधन के लिए मैं resourceexist कार्य का उपयोग कर सकता हूं, लेकिन मैं यह नहीं समझ सकता कि पथ का अल्पविराम द्वारा अलग-अलग सूची के साथ इसका उपयोग कैसे किया जाता है।

पथों के सेट के लिए मैं अस्तित्व कैसे देख सकता हूं? धन्यवाद!


बंडल वाली स्थितियों में कई डीआईआर या फाइलों के अस्तित्व की जांच करने का सबसे कम समाधान है:

<condition property="pathExist">
 <and>
  <available file="/foo/bar" type="dir"/>
  <available file="/foo/baz" type="dir"/>
  <available file="path/to/foobar.txt"/>
  ...
 </and>
</condition>

पथ उपयोग की एक अल्पकालिक सूची के लिए जांच करने के लिए एंट एडॉन फ्लका , फ़े:

<project xmlns:fl="antlib:it.haefelinger.flaka">

 <!-- when you have a cvs property use split function
      to get your list to iterate over -->
 <property name="checkpath" value="/foo/bar,/foo/baz,/foo/bazz"/>
  <fl:for var="file" in="split('${checkpath}', ',')">
    <fl:fail message="#{file} does not exist !!" test="!file.tofile.exists"/>
  </fl:for>               
</project>

एक अन्य संभावना स्क्रिप्ट कंडिशन कार्य का उपयोग है, जिसमें जीवीएम स्क्रिप्टिंग भाषा जैसे जीरोवी, बीन्सल आदि शामिल हैं।