No Programming, No Life

プログラミング関連の話題や雑記

Antスクリプト内でGroovyを利用する

はじめに

GroovyではAntBuilderGantといったAntを利用する上でとても強力な拡張が存在しますが、もうちょっとシンプルにAntスクリプト内からGroovyを利用する方法もあるのでそのご紹介です。

使い方

Seeing is believing!! ということで、サンプルをば。
(動作確認 Groovy Version: 1.7.2 JVM: 1.6.0_20, Apache Ant version 1.7.1 compiled on June 27 2008)

taskdefにてgroovyタスクを宣言します。classpath属性でgroovy-all-*.jarへのフルパスを指定して下さい。*1ちなみに、<![CDATA[ ... ]]> のようなCDATAセクションで囲んでいるのは、Groovyスクリプト内で "<" などのようにxml文字列をエスケープする煩わしさ回避のためです。

実行結果


>ant -f ant-with-groovy.xml
Buildfile: ant-with-groovy.xml

test:
[groovy] Groovy script in Ant script.

BUILD SUCCESSFUL
Total time: xx seconds


ちゃんとprintlnできてる!すごい。

これは便利ですね!

このようにgroovyタスクを宣言することで、Antが苦手としているループ処理や条件分岐などを華麗に記述することが可能になります。通常ですと、AntContribなどを用いたり、macrodefで頑張ったりするところですよね。

もうちょっと気の利いたサンプル

連番フォルダを100個作成する

連続でフォルダにコピーする

条件分岐

参考書籍

[GinA P401〜403]

Groovyイン・アクション

Groovyイン・アクション

*1:標準インストール時は${GROOVY_HOME}/embeddable/groovy-all-*.jar にあります。Antスクリプト配布時はgroovy-all-*.jarも一緒に配布するとよいでしょう。