2010-12-07 7 views
6

제 요구 사항은 waitfor 조건을 사용하여 ant가 주기적으로 "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 속성이 설정됩니다. 두 개의 대상이 있습니다. 하나는 문자열이 발견되면 으로, 다른 하나는 그렇지 않으면 실행됩니다. 'target' attributesif, unlessdepends은 if-else 논리 필요를 만들기 위해 사용됩니다. 또는 실패의 경우에만 조치를 취해야하는 경우 약간 간소화 할 수 있습니다.

+0

효과가있었습니다. 고마워요. –

+0

resourcecontains의 부분 문자열 속성에 regex를 사용할 수 있습니까? –

관련 문제