首页 > 解决方案 > 根据条件运行 arg

问题描述

我想<arg>根据条件运行特定标签。我的 ANT 版本也是 1.8.2,所以我不能使用 if 和 unless。

我有几个<arg>'s,<exec>我只希望某些<arg>'s 在满足某些条件时运行,在我的情况下,如果我的 ${host.NAME} 等于指定的服务器。

例如

<condition property="validHost" value="${dynamicValue}"> (except not dynamic, the first value is repeated for all instances)
    <or>
        <equals arg1="${host.NAME}" arg2="example" />
        <equals arg1="${host.NAME}" arg2="example" />
    </or>
</condition>

<exec...>
    <arg line="always runs"/> (Always runs)
    <arg line="${validHost}"/> (Only runs if validHost condition true)
</exec>

问题是当我在<condition value="${dynamicValue}">标签内放置一个动态值时,它会将每次迭代设置为第一个值,而不是动态更改它。例如这些值:

value1=你好 value2=世界

将导致

arg1=你好 arg2=你好

当我回显动态值本身发生变化时,我假设<condition>标签不是动态调用的,而是不可变的。除了更新还有什么办法可以解决这个问题吗?

标签: javaxmlant

解决方案


推荐阅读