目前我做
<foreach list="${myfolders}" target="bundle"
param="worksheet" inheritall="true"/>
执行文件夹列表中的目标"bundle"。然而,问题是我需要设置这个列表。如何使用Ant循环遍历父目录中的所有文件夹?
如果有一种方法可以做到这一点,并排除特定的文件夹,那会更好。谢谢
您可以为<foreach>
任务提供一个<dirset>
以进行操作:
<foreach target="bundle" param="worksheet" inheritall="true">
<path>
<dirset dir="${subDir}">
<include name="*"/>
</dirset>
</path>
</foreach>
请注意,当我以这种方式进行操作时,list
参数没有被使用。
不能像使用<fileset>
那样直接在<foreach>
下使用<dirset>
。但是,您可以将<dirset>
放在<path>
下面,如上所示。<include name="*"/>
防止在目录树下递归。
您可以使用subant 来完成此操作
示例:
<?xml version="1.0" encoding="UTF-8"?>
<project name="subant" default="subant1">
<target name="subant1">
<subant target="">
<dirset dir="." includes="*"/>
<target name="release" />
</subant>
</target>
</project>
我将ant contrib的foreach任务用于类似的工作。这将为列表中的每个条目调用指定的目标,每次都将该条目作为参数传递。