Ant:我如何遍历所有子文件夹并在ant中执行任务

时间:2011-06-06 15:11:23

标签: loops ant

目前我做

<foreach list="${myfolders}" target="bundle"
     param="worksheet" inheritall="true"/>

在文件夹列表上执行目标“bundle”。但问题是我需要设置此列表。如何使用Ant来遍历给定父目录的所有文件夹?

如果有办法做到这一点,也排除了更好的特定文件夹。感谢。

3 个答案:

答案 0 :(得分:10)

您可以为<dirset>任务提供<foreach>进行操作:

 <foreach target="bundle" param="worksheet" inheritall="true">
      <path>
          <dirset dir="${subDir}">
               <include name="*"/>
          </dirset>
      </path>
 </foreach>

请注意,当我这样做时,不会使用list参数。

您无法在<dirset>下直接使用<foreach> <fileset>。但是,您可以将<dirset>置于<path>下,如上所示。 <include name="*"/>阻止递归目录树。

答案 1 :(得分:0)

您可以使用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>

答案 2 :(得分:-1)

我使用foreach中的ant-contrib任务来完成类似的工作。这将为列表中的每个条目调用指定的目标,每次都将该条目作为参数传递。