我的要求是,使用waitfor条件,ant应定期检查日志文件中是否显示字符串“Build Successful”。如果找到字符串,则应执行特定操作。
答案 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 if
,unless
和depends
用于构建if-else逻辑需求。如果您只需要在成功或失败时采取措施,您可以略微简化。