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



目前我做

<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任务用于类似的工作。这将为列表中的每个条目调用指定的目标,每次都将该条目作为参数传递。

相关内容

  • 没有找到相关文章

最新更新