2009-08-04 4 views
5

मैं मैक्रो में फ़ाइलों की प्रतिलिपि बनाने की कोशिश कर रहा हूं, जैसे:चींटी में <macrodef> में <copy> कैसे करें?

<project name="why" default="go"> 
    <macrodef name="copy-some-stuff"> 
    <attribute name="file.name" /> 

    <copy todir="/var/tmp"> 
     <fileset file="${file.name}" /> 
    </copy> 
    </macrodef> 

    <target name="go"> 
    <copy-some-stuff file.name="/etc/hosts" /> 
    </target> 
</project> 

लेकिन मुझे निम्न

BUILD FAILED 
b.xml:3: macrodef doesn't support the nested "copy" element. 

मिलता है "हां, indeeed, macrodef के अलावा कोई भी विचार, समर्थन नहीं करता है नेस्टेड "कॉपी" तत्व। " मुझे इतना मिल गया। मैं देख रहा हूं कि यह सीमा यहां क्यों है और एक संभावित कामकाज (antcall का उपयोग किए बिना)।

+0

ऐसा लगता है कि किसी को macrodef के लिए मैनुअल पढ़ने नहीं किया। –

उत्तर

9

<sequential> साथ <copy> तत्व आसपास के प्रयास:

<macrodef name="copy-some-stuff"> 
    <attribute name="file.name" /> 
    <sequential> 
     <copy todir="/var/tmp"> 
      <fileset file="@{file.name}" /> 
     </copy> 
    </sequential> 
</macrodef> 
+1

धन्यवाद। ऐसा लगता है कि मैंने मैक्रो में विशेषताओं के उपयोग को भी लगाया। होना चाहिए: @ param not $ का उपयोग करके नोटिस। – Trenton

+0

दरअसल, उस पर ध्यान नहीं दिया। मैंने तदनुसार अपना जवाब बदल दिया है। –

+0

क्या आप थोड़ा सा विस्तार कर सकते हैं यह क्यों काम करता है? –

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