これを逃れる必要はありません。arg<include/>
の代わりに使用してください。includes
これを試して:
<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
ファイルを取得したディレクトリ内のファイルを削除する場合は、build.xml
絶対パスを渡す必要があります(これを行う<dirname/>
には、私の例のように使用できます)。を使用する場合は.
、ネストされたビルドで問題が発生します。ファイルを削除する2つのビルドがあることを想像してみましょう。ただし、最初のビルドは2番目のビルドも呼び出します。
maindir / build1.xml
<delete dir="." includes="**/*.txt" />
<!-- call clean target from build2.xml -->
<ant file="./subdir/build2.xml" target="clean"/>
maindir / subdir / build2.xml
<delete dir="." includes="**/*.txt" />
この場合、build2.xmlはsubdirの* .txtファイルを削除しませんが、antプロパティがbuild2.xmlに渡されるため、maindirの*.txtファイルを削除します。もちろんinheritAll="false"
、これを省略して使用することもできますが、私の経験から、.
パスで使用すると多くの問題が発生することがわかっています。