2012-03-15 8 views
21

मैं अपने मुख्य classpath पर सभी सामग्री को प्राप्त करने के लिए कोशिश कर रहा हूँ मेरी चींटी buildscript द्वारा एक फ़ाइल में लिखा करने के लिए करने के लिए वर्ग पथ वैरिएबल प्रतिध्वनित करने के लिए कैसे:एक फ़ाइल

<path id="main.class.path"> 
    <fileset dir="${lib.main.dir}"> 
     <include name="**/*.*"/> 
    </fileset> 
</path> 

जब मैं main.class.path पर होवर करें, चींटी/ग्रहण एक टूलटिप कि कि classpath पर आइटम से पता चलता शुरूआत:

C: \ Users \ MyUser \ कार्यक्षेत्र \ ग्रहण \ कार्यक्षेत्र \ myProj \ lib \ मुख्य \ चींटी-JUnit-1.6.5.jar

इत्यादि। (वास्तविक सूची में इसके बारे में 30 जार हैं।)

मैं चाहता हूं कि यह सूची मेरे dist/ निर्देशिका के तहत deps.txt नामक फ़ाइल में लिखी गई हो।

मैं अटक कर रहा हूँ क्योंकि मैं समझ नहीं main.class.path एक चींटी चर, या कैसे बनाने के लिए कैसे कम से कम <echo> कार्य में यह उपयोग करने के लिए:

<echo file="${dist.dir}/deps.txt" message="${???}"/> 

Am मैं जिस तरह से बंद आधार यहाँ , या यहां तक ​​कि दूरस्थ रूप से बंद?!

और आप में से उन लोगों के लिए, इस प्रश्न का उत्तर देने के बजाय, कृपया पर टिप्पणी क्यों करेंगी आप ऐसा क्यों करना चाहेंगे?, मेरा जवाब सरल है: मैं बस अपने जेएआर में एक छोटी पाठ फ़ाइल चाहता हूं जो इसकी निर्भरता के लिए दृश्य अनुस्मारक (मेरे भविष्य के लिए) के रूप में कार्य करता है।

उत्तर

30

इस प्रयास करें:

<pathconvert property="expanded.main.class.path" refid="main.class.path"/> 

    <target name="everything"> 
    <echo message="${expanded.main.class.path}" 
      file="${dist.dir}/deps.txt"/> 
    </target> 
13

सरल माध्यम से:

<echo file="${dist.dir}/deps.txt">${ant.refid:main.class.path}</echo> 
<!-- or --> 
<echo file="${dist.dir}/deps.txt">${toString:main.class.path}</echo> 

$ {ant.refid: main.class.path} या $ {toString: main.class.path} एक है सीएसवी संपत्ति जो आपके पथ से सभी वस्तुओं को अपने नेस्टेड फाइलसेट (resourcecollections सामान्य रूप से) से अलग करती है, ';' से अलग होती है
चींटी मैनुअल Properties and PropertyHelpers
आप एक और विभाजक आप जो एक pathsep attribute, है pathconvert उपयोग करने की आवश्यकता चाहते हैं अर्थात अपने deps.txt में प्रत्येक फ़ाइल के बाद एक नई लाइन के लिए उपयोग किए जाने pathsep="${line.separator}"

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