2011-03-16 69 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

相關問題