AntからGradleに移行する際に注意したい、ちょっとした事

約一年振りってどうよ(汗)
ということで、今年もやってきました、G* Advent Calendar 2012。5日目は私です。

さて、G*でビルドシステムと言ったら、Gradleですよね。私は最近、仕事で使い始めています。GroovyでDSLが書けるのは、本当に気持ち良いです。今まで仕事のビルドはAntでやっていたのですが、今後はGradleへ移行しようかと思っています。
Gradleの大きな特徴として、「Antのタスクやビルドをそのまま利用可能」というのがあります。Antのbuild.xmlをインポートするには、同じディレクトリに置いたbuild.gradleに

ant.importBuild "build.xml"

と1行書くだけです。これだけでAntで一生懸命作ったタスクをGradleから利用することができるので、まずはこれで簡単にAntからGradleへ移行できます。

実は、今回仕事のビルドでは最初上手く行かなかった部分がありました。それは、「インポート時にAntのbasedir属性は無視される」ということです。
例えば、複数のプロジェクトで共通に使用するライブラリ等を別のディレクトリに置くような場合があります。その際にbasedir属性を

の様に書いて、親ディレクトリをルートの様に扱ってAntのタスクを構築したとします。このファイルをGradleからインポートすると、、、まぁ動作しません。
今回は「Antのタスクをbasedir属性無しでも動くように書き換える」という力技で解決しました*1が、basedir属性が指定されている場合には気をつけましょう。

次はid:nobusueさんです。

*1:現在はbuild.xmlをインポートせずにカスタムAntタスクのみ利用する様に書き換えたので、無意味になってますがw