你不需要逃避這一點。只需使用<include/>
而不是includes
arg。試試這個:
<project name="test" default="clean">
<dirname property="build.dir" file="${ant.file.test}" />
<target name="clean">
<delete>
<fileset dir="${build.dir}/test">
<include name="**/*,*.xml" />
</fileset>
</delete>
</target>
</project>
順便說一下。你不應該在你的dir
參數中使用.
(點)。如果你想刪除文件夾中的文件,你應該通過絕對路徑(爲此,你可以使用<dirname/>
就像我的例子)。如果你將使用.
那麼你將會遇到嵌套構建的問題。讓你已經有兩個imageine建立其刪除文件,但第一次構建也叫第二次構建:
MAINDIR/build1.xml
<delete dir="." includes="**/*.txt" />
<!-- call clean target from build2.xml -->
<ant file="./subdir/build2.xml" target="clean"/>
MAINDIR /子目錄/ build2.xml
<delete dir="." includes="**/*.txt" />
在這種情況build2.xml不會刪除子目錄中的* .txt文件,而是在主文件中的* .txt文件,因爲ant屬性將傳遞給build2.xml。當然你可以用inheritAll="false"
來省略這個,但是從我的經驗來看,我知道在路徑中使用.
會帶來很多問題。
您是否試過用\(反斜槓)字符轉義它? – MattDMo 2013-03-14 20:34:48
是的,我做到了。我也試着用兩個反斜槓嘗試Sheryl的建議,但這也沒有幫助。 – 2013-03-14 22:03:28