我正在努力在Ant中找出这个任务。文档中没有很多例子,我似乎在网上找不到一个可靠的答案。
我需要扫描一个包含几个子目录的目录,例如
- 根
TargetFolder
- 文件夹
- 文件夹B
- 文件夹C
……
- 文件夹Z
我需要从根运行build.xml,并使用任务扫描TargetFolder
的所有子目录(因此文件夹a, B, C等),如果目录包含文件foo.txt
,则为该目录运行<apply>
任务。
我能够做一个<dirset>
并获得子目录的列表。我可以做一个单独的<fileset>
来扫描TargetFolder
,并得到foo.txt
的所有出现。但是,我不知道如何组合这些东西,或者如何去做一个简单的文件检查附加到<apply>
任务。
这是一种方法。如您所说,使用dirset和<present>
选择器:
<dirset id="dirs" dir="Root">
<present targetdir="Root">
<mapper type="glob" from="*" to="*/foo.txt" />
</present>
</dirset>
<apply executable="ls">
<arg value="-alF" />
<dirset refid="dirs" />
</apply>
你可以把这两个合并成一个任务:
<apply executable="ls">
<arg value="-alF" />
<dirset id="dirs" dir="Root">
<present targetdir="Root">
<mapper type="glob" from="*" to="*/foo.txt" />
</present>
</dirset>
</apply>