如果过滤器令牌不存在或令牌未被替换,则Ant失败

时间:2012-12-19 16:30:58

标签: ant

在Ant中,如果在复制文件时没有发生特定令牌的令牌替换,那么是否有人知道如何使build.xml失败的简明方法。即,文件中未找到令牌,因此未被替换。

这背后的想法是,在某些情况下,令牌化文件替换某些令牌可能是至关重要的,因此值得验证这些令牌是否存在于文件中 - 默认情况下Ant只会做什么令牌不存在。

我查看了filterfilterset的文档,但如果搜索到的令牌不存在,它们似乎没有失败的属性。

也许可以使用正则表达式任务来检查令牌是否存在。人们可以想到更简洁的方式吗?

1 个答案:

答案 0 :(得分:2)

你绝对可以这样做:

ant filtering - fail if property not set

<loadfile property="all-build-properties" srcFile="build.properties"/>
<condition property="missing-properties">
    <matches pattern="@[^@]*@" string="${all-build-properties}"/>
</condition>
<fail message="Some properties not set!" if="missing-properties"/>

Jason Day的所有权利

dovetalk解决方案也很好:

<fail unless="my.property">
    Computer says no. You forgot to set 'my.property'!
</fail>