2017-04-03 1 views
0

개미 파일을 작성하여 디렉토리의 모든 번역 파일을 검사합니다. 모든 파일의 검사 오류가 나타나면 스크립트의 개미가 나머지 파일을 계속 검사하도록합니다. 내 개미 작업 : 스크립트에 대한 개미 반복에 실패 할 경우 계속하는 방법

<taskdef name="validate" classname="ValidateTranslateFile"> 
     <classpath> 
      <pathelement location="${ant-libs-dir}/TranslateFileUtilities.jar" /> 
      <pathelement location="../web/WEB-INF/lib/commons-io-2.5.jar" /> 
      <pathelement location="../web/WEB-INF/lib/commons-lang3-3.5.jar" /> 
     </classpath> 
    </taskdef> 

    <for param="program"> 
     <path> 
      <fileset dir="../web/WEB-INF" includes="*.txt" /> 
     </path> 
     <sequential> 
      <validate targetFile="@{program}" checkLanguages="true" checkKeysOrder="true" /> 
     </sequential> 
    </for> 

</target> 

결과 : 그것은 첫 번째 오류까지 파일이 나타납니다 확인 다음 빌드에 실패했습니다.

아무도 도와 드릴 수 있습니까?

답변

0

for 작업은 표준 ANT의 일부가 아닙니다. 문서는 오류를 무시하는 "keepgoing"속성을 사용하여 제안

http://ant-contrib.sourceforge.net/tasks/tasks/for.html

, 이것은 당신이 찾고있는 해답이 될 수 있습니다 여기에 문서화 된 타사의 확장입니다.

작성중인 사용자 정의 ANT 작업 인 경우 refactoring the code to operate on a fileset을 고려해야할까요? 이렇게하면 다음과 같이 작업을 호출 할 수 있습니다.

<validate checkLanguages="true" checkKeysOrder="true"> 
    <fileset dir="../web/WEB-INF" includes="*.txt" /> 
</validate> 

더 간단하고 견고합니다.

+0

감사합니다. 실제로 이전에 해당 페이지의 코드를 읽었지만이 리팩토링 방법론을 이해할 수 없었습니다. 설립 된 파일을 반복하는 방법을 알고 계십니까? –

+0

@ AhmadAl-Khazraji 여기 몇 가지 예제를 통해 오픈 소스 프로젝트에서 추출한 몇 가지 예제를 찾아 보았습니다. http://www.programcreek.com/java-api-examples/org.apache.tools.ant.types.FileSet. 개인적으로 Groovy 스크립트를 사용하여 Ant를 확장하는 것을 선호합니다. http://stackoverflow.com/questions/5075017/ant-process-the-files-in-the-subfolder-using-tasks/5083342#5083342 –

관련 문제