首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ant中的Macrodef :在定义之外传递一个值

Ant中的Macrodef :在定义之外传递一个值
EN

Stack Overflow用户
提问于 2013-07-05 20:38:19
回答 1查看 2.2K关注 0票数 2

我在Ant中有以下宏定义,我想在这个宏定义之外传递"cmdStatus“值:

代码语言:javascript
复制
<macrodef name="execEtlBinScript">
    <attribute name="script" />
    <sequential>
        <exec executable="@{script}" resultproperty="cmdStatus"/>
    </sequential>
</macrodef>

你知道这是否可能吗?

谢谢你的帮助。温馨的问候,foxrafi

EN

回答 1

Stack Overflow用户

发布于 2013-07-07 02:10:37

在您的示例中,设置了属性cmdStatus,然后可以在宏定义之外使用它。但我猜您的问题是,如果您多次调用宏,则无法获得下一个状态值,因为Ant中的属性是不可变的。

正确处理它的方法是使result属性成为宏的属性:

代码语言:javascript
复制
<macrodef name="execEtlBinScript">
    <attribute name="script" />
    <attribute name="resultproperty" />
    <sequential>
        <exec executable="@{script}" resultproperty="@{resultproperty}"/>
    </sequential>
</macrodef>

然后,每次对宏定义的调用都将通过不同的属性获取它的值:

代码语言:javascript
复制
<execEtlBinScript script="somescript" resultproperty="status1" />
<echo message="Result of the first call: ${status1}" />
<execEtlBinScript script="somescript" resultproperty="status2" />
<echo message="Result of the second call: ${status2}" />
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17489113

复制
相关文章

相似问题

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