2011-06-06 13 views
6

में एक कार्य को करते हैं वर्तमान में मैंचींटी: मैं कैसे सब सबफ़ोल्डर्स से अधिक interate और चींटी

<foreach list="${myfolders}" target="bundle" 
    param="worksheet" inheritall="true"/> 

कर फ़ोल्डरों की सूची पर लक्ष्य "समूह" को निष्पादित करने के लिए। हालांकि समस्या यह है कि मुझे इस सूची को सेट करने की आवश्यकता है। मैं मूल निर्देशिका को दिए गए सभी फ़ोल्डर्स के माध्यम से केवल लूप के लिए चींटी का उपयोग कैसे करूं?

अगर कोई ऐसा करने के लिए और भी विशिष्ट फ़ोल्डरों कि यहां तक ​​कि बेहतर होगा बाहर करने के लिए एक तरीका है। धन्यवाद।

उत्तर

-1

मैं एक ऐसी ही नौकरी के लिए ant-contrib से foreach कार्य का उपयोग करें। यह सूची में प्रत्येक प्रविष्टि के लिए एक निर्दिष्ट लक्ष्य को कॉल करेगा, प्रत्येक बार पैरामीटर के रूप में प्रविष्टि को पास करेगा।

+0

मैं एक सूची उपलब्ध कराने के बिना यह करने के लिए एक तरह से देख रहा हूँ। उपफोल्डर्स का सेट लगातार मेरे मामले में बदलता है, और मैं हमेशा सूची के अनुसार सूची को अपडेट नहीं करना चाहता हूं। – Solomon

+0

ऐसा लगता है कि डेविड डब्ल्यू इस पर पहले ही विस्तार कर चुका है। "सूची" वास्तव में कुछ ऐसा हो सकता है जो स्वचालित रूप से जेनरेट हो जाता है। – Ben

8

आप पर संचालित करने के लिए एक <dirset> के लिए <foreach> कार्य प्रदान कर सकते हैं:

<foreach target="bundle" param="worksheet" inheritall="true"> 
     <path> 
      <dirset dir="${subDir}"> 
       <include name="*"/> 
      </dirset> 
     </path> 
</foreach> 

सूचना है कि जब मैं इसे इस तरह से करना list पैरामीटर नहीं किया जाता है।

आप का उपयोग <foreach> के तहत सीधे <fileset> के साथ कर सकते हैं। हालांकि, ऊपर दिखाए गए अनुसार <path> के तहत आप <dirset> डाल सकते हैं। <include name="*"/> निर्देशिका पेड़ को रिकर्स करने से रोकता है।

+0

धन्यवाद। जब मैं इसे आज़माता हूं तो मुझे एक त्रुटि मिलती है " 'प्रकार नेस्टेड' पथ 'तत्व का समर्थन नहीं करता है"। अगर मैं बाहर ले '' तो मैं त्रुटि मिलती है "' ' प्रकार 'dirset' तत्व नेस्टेड का समर्थन नहीं करता" – Solomon

+0

antcontrib जार किस संस्करण का उपयोग कर रहे हैं? मेरा [build.xml] (http://dl.dropbox.com/u/433257/build.xml) आज़माएं। परीक्षण के लिए मैंने यही किया। –

+0

यह पूरी तरह से काम किया। स्वीकार किया जाना चाहिए। – prolink007

0

आप के साथ subant

उदाहरण यह कर सकते हैं:

<?xml version="1.0" encoding="UTF-8"?> 
<project name="subant" default="subant1"> 

     <target name="subant1"> 

      <subant target=""> 

       <dirset dir="." includes="*"/> 
       <target name="release" /> 

      </subant> 

     </target> 

</project>