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

Jam*_*per 31 java ant

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

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

如果缺少属性,我希望ant快速失败build.properties.也就是说,如果任何原始@...@令牌进入生成的文件,我希望构建死亡,以便用户知道他们需要将一个或多个属性添加到他们的本地build.properties.

内置任务可以实现吗?我在文档中找不到任何内容.我即将编写一个自定义的ant任务,但也许我可以省力.

谢谢

dov*_*alk 99

如果要查找特定属性,可以将fail任务与unless属性一起使用,例如:

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

有关更多详细信息,请参阅Ant的失败任务文档.


Jas*_*Day 19

你可以在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"/>
Run Code Online (Sandbox Code Playgroud)