Ant foreach避免空变量

时间:2011-07-01 10:16:35

标签: java ant

我在build.xml文件中有以下行:

<foreach list="${clients}" delimiter="," target="clean other hosts" param="client.string"/>

但是,即使${clients}为空(它可能包含换行符,因为它是从文件中读取),它也会调用目标一次。

是否有解决方法,以防止这种情况发生(调用循环)?

1 个答案:

答案 0 :(得分:2)

从技术上讲,任务是正确的,因为"".split(",")等于{""}。但是,您可以使用<if> task包装任务来解决此问题:

未测试:

<if>
 <not><equals arg1="${clients}" arg2="" /></not>
 <then>
   <foreach list="${clients}" delimiter=","
            target="clean other hosts" param="client.string"/>
 </then>
</if>