蚂蚁过滤-如果未设置属性,则失败


问题内容

我有一个build.xml使用该<copy>任务复制各种xml文件的蚂蚁。它使用过滤合并build.properties文件中的属性。每个环境(开发,阶段,生产)都有一个不同的build.properties存储环境配置。

有时,我们向Spring XML或其他需要更新build.properties文件的配置文件添加新属性。

如果缺少属性,我希望蚂蚁快速失败build.properties。也就是说,如果有任何原始@...@令牌将其放入生成的文件中,则我希望该构建终止,以便用户知道他们需要向其本地build.properties添加一个或多个属性。

内置任务有可能吗?我在文档中找不到任何内容。我将要编写一个自定义的ant任务,但是也许我可以省下点力气。

谢谢


问题答案:

您可以在ant 1.7中结合使用LoadFile任务和match条件来执行此操作。

<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"/>