きどたかのブログ

いつか誰かがこのブログからトラブルを解決しますように。

久しぶりにAnt書いた

久しぶりにAntを書く機会があった。


build.propertiesに書かれた、
カンマ区切りのパスを使い、
それらのディレクトリから不要なファイルを消し、リポジトリからも消し、ディレクトリ・サブディレクトリは残っていないといけない。


久しぶりだから、propertyの使いにくさにハマった。
一つ目のループは、カンマで区切るforタスクを作れていて問題ない。
そこから、ファイルのみを抽出するのにfilesetを使った。
でもid付けて、次のpathcovertでrefidしてたのがまずは悪くて、
そこはpathconvertのネスト要素でfilesetを使うように変えた。idは要らない。


pathcovertは、スペース区切りのファイル一覧文字列を作るのに使用して、マクロにはそれを流し込む。
ただし、pathconvertの出力結果にpropertyを使うと、ループで何度通っても、1度目の値が変更されないため、そのプロパティーはvarで宣言して、pathcovertの前でunsetするように変えた。


スペース区切りのファイル一覧文字列は、そのままsvn系のツールに引数で渡せるが、ファイルがいなくて何も値を渡せてないとエラーになったため、ifとlengthで長さチェックをしてから呼び出すように変えた。
対象ファイル非存在の観点はどこでもやることなので、Antでもやるほうがいいよね。


なんか別の新しい方法ないかな。
今回のはlocalタスクでもきっとできない。