GantでIvyが動いた

前にやったらコケたってのは訂正しとかないと。
以下,やり方。まずは仕込み。

1. 'ivy-2.0.0-beta1.jar'を$GROOVY_HOME/libに置く
2. ファイアウォール内で使うんで,startGroovy.batにプロキシの設定を仕込む。

set JAVA_OPTS=%JAVA_OPTS% -Dscript.name="%GROOVY_SCRIPT_NAME%"
rem 以下の行を追加
set JAVA_OPTS=%JAVA_OPTS% -Dhttp.proxySet=true -Dhttp.proxyHost=proxy.example.com -Dhttp.proxyPort=8080

これで仕込みは完了。次に使い方。

build.gantにこんな感じのターゲットを追加する。

includeTool << gant.tools.Ivy
target(ivy: 'Ivy test') {
  Ivy.retrieve(pattern:'${ivy.lib.dir}/[conf]/[artifact].[ext]')
}

上記の設定だと,ivy.xmlを読み込んでretrieveを実行する。ホントは

  Ivy.retrieve()

とだけ記述したいんだけど,Gantが'Ivy.retrieve()'を"属性なし"と認識してくんないんで,ひとつでもなんか無難な属性を設定しとかないとダメ。


ixy.xml用意すんのがメンドイ場合は,こうゆう記述もアリらしい。

 Ivy.retrieve(
   organisation: 'commons-lang',
   module: 'commons-lang',
   revision: '2.3', inline : 'true')
 Ivy.retrieve (
   organisation: 'struts',
   module: 'struts',
   revision: '1.2.9' , inline : 'true' )

複数指定したい場合は,上記のように続けて記述するだけでいいみたい。
Ivy使えるとなるとGantも幅が広がるなぁ。


ps.
実のところIvyで気に入っているのは,このretrieveなのだ。これを実行することで,使用するライブラリ(Jarファイル)をプロジェクトワークスペース内(デフォは'./lib')にダウンロードしてくれる。
ローカルリポジトリにあるから安心とは思えない小心者のあたしとしては,プロジェクト内にすべてのリソースがあることを望むのダヨ。
How does it work ? | Apache Ivy™ Documentation