<concat destfile="${destFile}" fixlastline="yes">
<filelist dir="." files="${filelist}"/>
</concat>
在上面的片段中,当concat
的文件无法访问/找到时,我希望filelist
任务失败。请问最好的方法是什么?
答案 0 :(得分:4)
这是实现相同目标的一种方法 - 但是通过在concat之前定义文件列表,并检查文件是否存在。
概要
嵌入fail
task的condition用于比较计数。如果通过,则执行连续。
<filelist id="my.list" dir="." files="${filelist}" />
<fileset id="my.set" dir="." includes="${filelist}" />
<resourcecount refid="my.list" property="my.list.size" />
<resourcecount refid="my.set" property="my.set.size" />
<fail message="Only found ${my.set.size}/${my.list.size} files for concat!">
<condition>
<not>
<equals arg1="${my.set.size}" arg2="${my.list.size}" />
</not>
</condition>
</fail>
<concat destfile="${destFile}" fixlastline="yes">
<filelist refid="my.list" />
</concat>
要获取丢失的文件列表,请使用以下内容:
<difference id="missing">
<resources refid="my.list"/>
<resources refid="my.set"/>
</difference>
然后您可以将fail
任务修改为:
<fail message="Missing files for concat: ${ant.refid:missing}">