Groovy!
存在自体は前々から知っていたものの、初めて触りました、Groovy!
ただ、思いの他インストールにてこずってしまいました。。結局よく分からなかったんですけどね。。
groovyConsole起動して、実行した時に以下のようなエラーが出たんです。
java.lang.ClassFormatError: org/codehaus/groovy/antlr/parser/GroovyRecognizer
これを解決してやろうと色々しましたが、よく分からず。いきなり挫折しかけましたが、ホームページにはWindows用のInstallerがありました。そっちでインストールすると普通に動きました。ありがとう、インストーラー♪
Ant
antのbuild.xmlを定義する時に、if文がたまに必要になるんだけど、XMLでこれを表現するの無理!ま、出来なくはないんだけど、かなり面倒くさい。で、結局javaプログラムを書いた後にbuild.xml上で独自タグを定義してそれを呼び出して。。。とかになる。
普段のjavaプログラムだと別にいいんだけど、こういうときに書くjavaって鬱陶しいんよね。なんかもっさりしてて。スクリプト言語並みの軽さで書けたらなぁ、と思ってたら、「あ、Groovyあるやん!」と思い出したわけ。
ちょっと調べてたら、AntBuilderなるものが最初から組み込まれている!!素晴らしい!!!
<property name="src.dir" value="C:/hoge"/> <property name="doc.dir" value="E:/doc"/> <target name="copyText"> <mkdir dir="${src.dir}/doc" /> <copy file="${doc.dir}/hoge.txt" todir="${src.dir}/doc" /> </target>
こんなbuild.xmlはgroovyで書くと次のようになる。
src_dir = "C:/hoge" doc_dir = "E:/doc" def copyText() { ant = new AntBuilder(); ant.mkdir(dir:src_dir + "/doc") ant.copy(file:doc_dir + "/hoge.txt", todir:src_dir + "/doc") } copyTarget() // 実行
これだけだとbuild.xmlの方が正直好きな感じだけど、if文が自由に使えるのはやっぱり強いと思う。でもって、antで提供されている便利な部品群がそのまま利用できるだなんて♪
もうちょっと使い道を検討します。会社の皆様が賛同してくれると嬉しいけど。