Ant for script如果迭代失败,如何继续

时间:2017-04-03 08:21:46

标签: 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 FAILED。

有人可以帮我吗?

1 个答案:

答案 0 :(得分: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>

更简单,更健壮。