2011年7月9日土曜日

Groovyで、簡単なファイルのリストを作る

最近にわかに流行ってきているGroovy

早速、Groovyで簡単なファイルのリストを作るスクリプトを書きました。

と、いっても、これはGroovyだけでなく、Gantの記事でもあったりする。

お題 : ある特定のフォルダにあるファイルの一覧を取得して、「;(セミコロン)」でつないで表示する。



import groovy.io.FileType
libDir = 'C:/Users/mike/IdeaProjects/Slim3Sample-03/war/WEB-INF/lib'
def libs = []
new File(libDir).eachFile(FileType.FILES){
    libs << 'lib/' + it.getName()
}
println libs.join(';')


このソースをご覧になるとわかると思いますが、Slim3のライブラリーの一覧を取得するスクリプトです。
結果はこうなります。


lib/appengine-api-1.0-sdk-1.5.0.jar;lib/appengine-api-labs-1.5.0.jar;lib/junit-4.7.jar;lib/ktrwjr.jar;lib/slim3-1.0.11.jar


まあ、とくにどうということもないのですが、これをAntでコンパイルせぇ!と言われた時に、このスクリプトは役立ちます。

改題 : AntをGroovyから実行せよ


Gantを使います。


import groovy.io.FileType

srcDir = 'src'
bldDir = 'bin'
def libs = []
libDir = 'lib'
new File(libDir).eachFile(FileType.FILES){
    libs << 'lib/' + it.getName()
}

includeTargets << gant.targets.Clean
cleanPattern << '**/*~'
cleanDirectory << bldDir

target(compile : 'Compile java file into build directory'){
    depends(clean)
    javac(srcdir : srcDir, destDir : bldDir, classpath : libs.join(';'))
}
target(hello : 'default task'){
    echo(message : 'to compile java sources use : gant compile')
}

setDefaultTarget(hello)



Antのbuildファイルを作成するときに一番嫌なのは、classパスを色々とかくことで、これがGroovyで引っ張ってこれるなら、そうしておいたほうがらくでいいですね。

あとは、おもむろに次のコマンドを打てばおしまい。


gant compile


0 件のコメント:

コメントを投稿