2017-04-03 12 views
0

ディレクトリ内のすべての変換ファイルをチェックするantビルドファイルを作成しました。 ファイルのチェックエラーが表示された場合、スクリプトのantが残りのファイルをチェックし続けるようにします。 私のantタスク: スクリプトのAntスクリプトの反復が失敗した場合の処理​​方法

<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> 

結果: それは最初のエラーまでのファイルが表示されチェックし、その後、BUILDに失敗しました。

私はそれを手伝ってもらえますか?

答えて

0

forタスクは標準ANTの一部ではありません。それはここに文書化され、サードパーティの拡張機能です:

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

ドキュメントはエラーを無視して「keepgoing」属性を使用して、これはあなたが探している答えであるかもしれない示唆しています。

あなたが書いているカスタム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 –

関連する問題