使用ant,检查文件中是否找到特定字符串

时间:2010-12-07 07:02:28

标签: ant

我的要求是,使用waitfor条件,ant应定期检查日志文件中是否显示字符串“Build Successful”。如果找到字符串,则应执行特定操作。

1 个答案:

答案 0 :(得分:6)

以下是一种可能的方法示例:

<target name="wait-for">
    <waitfor maxwait="15" maxwaitunit="second" timeoutproperty="build.timeout">
        <resourcecontains resource="build.log" substring="Build Successful" />
    </waitfor>
    <antcall target="build-success" />
</target>

<target name="build-success" depends="build-fail" unless="build.timeout">
    <echo message="Success" />
</target>
<target name="build-fail" if="build.timeout">
    <echo message="Fail" />
</target>

使用resourcecontains条件在命名资源中查找字符串 - 在本例中为“build.log”文件。 如果在指定的时间内未找到,则设置build.timeout属性。有两个目标,一个将要运行 如果找到了字符串,那么如果没有找到。 'target' attributes ifunlessdepends用于构建if-else逻辑需求。如果您只需要在成功失败时采取措施,您可以略微简化。