私は他の誰かから継承した(もう利用できない)大きなAntスクリプト(> 1000行)に取り組んでいます。Antがディレクトリを削除しないという問題があります。スクリプトのある時点では機能しますが、別の時点では機能しません。Antはエラーメッセージを表示しませんが、ディレクトリをそのままにします。
ディレクトリの存在を確認するために、その周りにいくつかのグルーヴィーを配置しました。
<groovy>
println("Directories in @{outFolder} are:")
new File("@{outFolder}").eachDir() { dir -> println dir.getName() }
</groovy>
<delete verbose="true" includeEmptyDirs="true" >
<dirset dir="@{outFolder}" includes="**/*" />
</delete>
<echo>End of delete</echo>
<groovy>
println("Directories in @{outFolder} are:")
new File("@{outFolder}").eachDir() { dir -> println dir.getName() }
</groovy>
したがって、行が呼び出され、機能します。次に、他のアプリが呼び出され、新しいディレクトリが作成されます。まったく同じ行が再度呼び出されますが(コピーアンドペースト、はい、同じです)、ディレクトリは削除されません。また、エラーはありません。Antは実行を続けます。Windows Server2008R2でAnt1.8.1を使用しています。ロックの問題を防ぐために、スリープを追加してみました。ディレクトリを作成するアプリはJavaアプリ(Tibco appManage)です。ディレクトリにはXMLファイルが含まれ、jarファイルは含まれません。ANT_HOMEとCLASSPATHを確認しました。問題はありません。何が恋しいですか?
スマートロバの場合:もちろん、2回目の削除では、アプリによって作成されたすべてのものを削除する必要はありませんが、問題を特定するために、スクリプト行をできるだけ単純にしました。
さらに詳しい情報:削除を機能させることができないため、回避策としてAntmoveを使用しようとしました。これは私が見ているものです:移動は宛先に空のディレクトリを作成し、ソースからファイルやディレクトリを削除せず、エラーを報告しません。これらのソースディレクトリ/ファイル(以前に削除しようとしたもの)に問題があるようです。
別の試み:AntとGroovyの最新バージョンをダウンロードしました。同じ結果。