2010-12-07 6 views
6

私の要件は、waitfor条件を使用して、ログファイルに文字列 "Build Successful"が表示されるか定期的にチェックする必要があります。文字列が見つかった場合は、特定のアクションを実行する必要があります。 - この場合にはファイル「build.log」をantを使用して特定の文字列がファイル内に見つかったかどうかを確認してください

<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条件を使用します。

+0

文字列が見つからない場合はどうなりますか?タイムアウトがありますか? –

+0

文字列が指定されたタイムアウト時間まで見つからない場合は、何らかのエラーメッセージが表示されます。 –

答えて

6

は、ここであなたがこれを行う可能性があります一つの方法の例です。 割り当てられた時間に見つからない場合は、build.timeoutプロパティが設定されています。 2つのターゲットがあります.1つは実行される文字列である場合は 、見つからない場合はもう1つです。 'target' attributesif,unless、およびdependsは、if-elseロジックを必要とするために使用されます。 またはが失敗した場合に対処する必要がある場合は、少し簡単にすることができます。

+0

これは機能しました。ありがとうたくさん –

+0

resourcecontainsの部分文字列属性でregexを使用できますか? –

関連する問題