首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ant-contrib : AntCallback总是返回相同的值

Ant-contrib : AntCallback总是返回相同的值
EN

Stack Overflow用户
提问于 2014-05-13 14:20:58
回答 1查看 1K关注 0票数 2

我的问题是;

当我多次调用一个antcallback函数时,它总是返回相同的值。查看以下代码:

代码语言:javascript
复制
<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>

结果是:

代码语言:javascript
复制
$ /home/apache-ant-1.9.4/bin/ant -f AntCallBackTest.xml
Buildfile: AntCallBackTest.xml

testFnc:

acbFnc:
     [echo] [acbFnc] started
     [echo] [acbFnc] ended.
     [echo] CALL - 1 : out.file : TEST-1

acbFnc:
     [echo] [acbFnc] started
     [echo] [acbFnc] ended.
     [echo] CALL - 2 : out.file : TEST-1

BUILD SUCCESSFUL
Total time: 0 seconds

如你所见,我在第一次调用中发送了"param name="in.file“value="TEST-1”“,

我在第二次呼叫中发送了"param name="in.file“value="TEST-2”“,

但它总是返回第一个值:

回声呼叫-1: out.file :测试-1

回声呼叫-2: out.file :测试-1

我做错了什么?

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2014-05-13 14:47:04

我找到了解决方案:

在第二次调用之前,我必须取消设置变量:

代码语言:javascript
复制
<var name="out.file" unset="true"/>

我是说,应该是这样的:

代码语言:javascript
复制
<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>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23624051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档