我在build.xml 中有以下工作
<target name="doubleEmptyLines">
<apply executable="awk" failonerror="true">
<arg value="BEGIN{bl=0}/^$/{bl++;if(bl>1) { print "Double empty lines dedected in" FILENAME; exit 1}}/^..*$/{bl=0}"/>
<fileset dir="${sourcedir}">
<include name="**/*.php" />
<include name="**/*.js" />
</fileset>
</apply>
</target>
正如您所看到的,它查找双空行,例如函数声明之间的空行。它工作得很好,但它在第一次失败时就停止了,但我希望它能在整个文件集中继续运行,如果文件集中的任何文件出现错误,就会在最后抛出错误。
所以我可能会查看整个报告,看到每一个错误的文件,然后立即修复所有文件。
我怎样才能做到这一点?
我设法做到了这一点:
<target name="doubleEmptyLines">
<apply verbose="true" executable="awk" outputproperty="doubleEmptyLinesResult" append="true">
<arg value="BEGIN{bl=0}/^$/{bl++;if(bl>1) { print "ERROR: Double empty lines dedected in" FILENAME NR "n"; exit 1}}/^..*$/{bl=0}"/>
<fileset dir="${sourcedir}">
<include name="**/*.php" />
<include name="**/*.js" />
</fileset>
</apply>
<condition property="doubleEmptyLinesFound">
<contains string="${doubleEmptyLinesResult}" substring="ERROR"/>
</condition>
<fail if="doubleEmptyLinesFound" message="Double lines found, output from script: ${doubleEmptyLinesResult}"/>
</target>