2009-08-04 2 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を使わずに)を探しています。 <sequential><copy>要素を囲む

+0

が見えます。 –

答えて

9

試してみてください。誰かがmacrodefのマニュアルを読んでいないよう

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

ありがとうございます。私もマクロ内の属性の使い方に邪魔をしたように見えます。 $ではなく@paramを使用していることに注意してください。 – Trenton

+0

確かに、それに気付かなかった。私はそれに応じて私の答えを変更しました。 –

+0

これはなぜ機能するのですか? –

関連する問題