Ant contrib:AntCallback始终返回相同的值

Ant contrib:AntCallback始终返回相同的值,ant,echo,ant-contrib,antcall,Ant,Echo,Ant Contrib,Antcall,我的问题是 当我调用一个以上的回调函数时,它总是返回相同的值。请查看以下代码: <project name="AntCallBack" default="testFnc" basedir="."> <taskdef resource="net/sf/antcontrib/antcontrib.properties" /> <target name="acbFnc" description="Sub Function" > <ec

我的问题是
当我调用一个以上的回调函数时,它总是返回相同的值。请查看以下代码:

<project name="AntCallBack" default="testFnc" basedir=".">
   <taskdef resource="net/sf/antcontrib/antcontrib.properties" />

   <target name="acbFnc" description="Sub Function" >
      <echo message="[acbFnc] started"/>
      <property name="out.file" value="${in.file}"/>
      <echo message="[acbFnc] ended."/>
   </target>

   <target name="testFnc" description="Main" >

        <antcallback target="acbFnc" return="out.file" >
            <param name="in.file" value="TEST-1" />
        </antcallback>
        <echo message="CALL - 1 : out.file : ${out.file}" />

        <antcallback target="acbFnc" return="out.file" >
            <param name="in.file" value="TEST-2" />
        </antcallback>
        <echo message="CALL - 2 : out.file : ${out.file}" />

    </target>
</project>
如您所见,我在第一次调用中发送了“param name=“in.file”value=“TEST-1”
在第二次调用中,我发送了“param name=“in.file”value=“TEST-2”
但它总是返回第一个值:
[echo]调用-1:out.file:TEST-1
[echo]调用-2:out.file:TEST-1

我做错了什么?
提前感谢

我找到了解决方案:
在第二次调用之前,我必须使用以下命令取消设置变量:

<var name="out.file" unset="true"/>

我是说,应该是这样的:

<target name="testFnc" description="Main" >

    <antcallback target="acbFnc" return="out.file" >
        <param name="in.file" value="TEST-1" />
    </antcallback>
    <echo message="CALL - 1 : out.file : ${out.file}" />

    <var name="out.file" unset="true"/>

    <antcallback target="acbFnc" return="out.file" >
        <param name="in.file" value="TEST-2" />
    </antcallback>
    <echo message="CALL - 2 : out.file : ${out.file}" />

</target>


使用ant就像使用脚本语言一样,但事实并非如此。Ant没有变量或函数。如果你改变构建工具,或者让ant成为ant,用@thekb thx替换你正在使用的目标函数,你会过得更好。我将考虑使用宏设计。我是蚂蚁的新手。
<target name="testFnc" description="Main" >

    <antcallback target="acbFnc" return="out.file" >
        <param name="in.file" value="TEST-1" />
    </antcallback>
    <echo message="CALL - 1 : out.file : ${out.file}" />

    <var name="out.file" unset="true"/>

    <antcallback target="acbFnc" return="out.file" >
        <param name="in.file" value="TEST-2" />
    </antcallback>
    <echo message="CALL - 2 : out.file : ${out.file}" />

</target>