2011-03-16 68 views
4

在一个ant构建脚本中,如何删除一个目录及其子目录中的所有*.java文件?使用Ant递归删除一种类型的所有文件

+0

为什么呢?这听起来非常危险...... – 2011-03-16 16:23:50

+0

在文档中有一个示例:http://ant.apache.org/manual/Tasks/delete.html – PeterMmm 2011-03-16 16:25:19

+0

@Travis Webb - 一个用例是删除自动生成的代码建立后清理。 – 2011-03-16 16:26:58

回答

15

目录树中您想删除.java文件的深度有点不清楚。我会提供两种方法。

全面递归删除

递归删除所提供的目标目录下的任何地方都.java文件。

<delete> 
    <fileset dir="${basedir}/path/to/target/directory" includes="**/*.java"/> 
</delete> 

只有目标目录中和它的直接子目录

中删除指定的目标目录.java文件,并在那些目标目录的直接孩子的任何目录,但没有进一步。

<delete> 
    <fileset dir="${basedir}/path/to/target/directory" includes="*.java,*/*.java"/> 
</delete> 

有关其他选项,请参阅documentation的删除任务。

小心 - 如果将错误的目录放入目标目录中,可能会删除不想要的东西。考虑将目标目录的路径相对于构建文件,或${basedir}

2
<delete> 
<fileset dir="." includes="**/*.java"/> 
</delete> 

以上delete任务将从当前目录和所有子目录中删除扩展名为.java的所有文件。

-1
<delete>  
    <filename name="**/*.java"/> 
</delete> 

http://ant.apache.org/manual/Types/fileset.html

+0

-1:在Ant 1.8中,这会导致DEPRECATED警告和构建失败,并显示以下消息:'必须至少设置一个文件或目录属性或嵌套的资源集合。'''需要在''之内,以使XML有效。 – 2011-03-16 16:36:01

相关问题