我正在向一个包含各种包含和排除文件的文件集添加20多个文件。这需要一些时间,因此Ant会跳过Ant文件集上的依赖任务。它根本不会运行依赖操作。这是低效的。有人知道一种更好的方法,可以让文件集添加文件,然后执行从属操作,而不是跳过它吗?
一种方法是利用睡眠https://ant.apache.org/manual/Tasks/sleep.html.我不能等待。
示例:
<fileset id="scr" dir="dir1/*" casesensitive="yes"
includes="bin/*, lib/* excludes="dir1/*.py />
<foreach param="file" in="scr">
<echo message="${file}"/>
</foreach>
</fileset>
上面的示例将完全跳过打印文件名,因为Ant仍在向文件集添加文件。
foreach任务不是ANT的一部分,它是第三方扩展,我不完全确定它的设计是否符合您的想法。
相反,我可以建议您按如下方式打印文件集内容:
<apply executable="echo">
<fileset dir="dir1/*" casesensitive="yes" includes="bin/*, lib/* excludes="dir1/*.py />
</apply>
如果你想使用文件集引用,也可以像这样:
<fileset id="scr" dir="dir1/*" casesensitive="yes" includes="bin/*, lib/* excludes="dir1/*.py />
<apply executable="echo">
<fileset refid="scr"/>
</apply>
注:
- Ant不是一种编程语言,所以循环并不有趣。如果你需要复杂的逻辑,我强烈建议你嵌入一种脚本语言。我不推荐蚂蚁悔过