5
我正在使用ant 1.6.2,并且正在尝试设置一个任务,该任务将比较源目录和目标目录,确定源目录中存在的所有子目录,并删除目标目录中的已命名子目录。如何使用FileSet在ant中选择子目录?
因此,假设源目录中有子目录sub1,sub2和sub3,目标目录中有sub1,sub2,sub3和sub4,那么我想删除sub1,sub2和sub3目标目录。
我想我可以通过使用FileSelector来标识目标中存在的所有目录中的目录。但是,我无法使< type>文件选择器返回目录匹配。
最后,我想我会做这样的事情:
<fileset id="dirSelector" dir="${install.dir}">
<type type="dir"/>
<present targetdir="${dist.dir}"/>
</fileset>
我开始只是想列出存在的源目录中的目录,并把它们打印出来:
<fileset id="dirSelector" dir="${install.dir}">
<type type="dir"/>
</fileset>
<property name="selected" refid="dirSelector" />
<echo>Selected: ${selected}</echo>
然而,我从来没有得到任何打印的类型选择器设置为目录。如果我将文件类型更改为文件,我会将文件打印出来。
有没有更好的方法来完成我想要做的事情?我在使用类型选择器时错过了什么?
感谢您的帮助。我目前不使用ant contrib库,所以我想我会尝试先建议的自定义任务路线。这最终变得相当简单,并且工作得很好。谢谢。 – 2010-01-28 13:24:11
@EricRosenberg您可以将自定义任务发布为答案吗?这对于SO来说工作得很好,而且这将是我们正在寻找的东西。 – 2014-02-25 11:06:02
@OzairKafray对不起,但我无法再访问自定义任务实施。 – 2014-04-23 20:33:58