No Programming, No Life

新しいNPNLです。http://d.hatena.ne.jp/fumokmm/ から引っ越してきました。

GroovyでApache Ivyをいろいろ試してみる(その2)

このシリーズの一覧はこちら

はじめに

前回の記事の続き。iPad発売記念日ですがこんな記事を書いてます(笑)

IvyリポジトリをWeb上に公開したい

まだわかっていないことも多いのですが、ちょこちょこ調べていった結果ivy.xml的なものを宣言して、あとは
ということで、以下のようなフォルダ構成をFTPにてアップしてみたところうまく動きました。

例: hatenahaiku4jのIvyリポジトリ

http://www26.atwiki.jp/fumokmm/pub/repos/ivy/hatenahaiku4j/hatenahaiku4j/

リポジトリ
├ivy-{バージョン}.xml   …設定ファイル(ivy.xml)
├     ・
├     ・
├     ・
└jars
 ├hatenahaiku4j-[version].jar  …jarファイル
 ├     ・
 ├     ・
 └     ・

ローカル側での操作

で、ローカル側では以下のような感じで取得できます。

このスクリプトは設定ファイル(ivy.xml, ivysetting.xml, build.xml(ant-script))を用意して実行する部分をGroovyで一気に行っています。
実行すると、ivy.xmlとivysetting.xmlがカレントフォルダに作成され、その後、antでが実行されるため、カレントフォルダにlibフォルダが作成され、hatenahaiku4jの最新版jarが格納されます。

GroovyのGrapeで動かす場合

Grapeで動かす場合は、若干面倒ですが、事前にgrapeConfig.xml*1を${user.home}/.groovy/に置いてもらって、さらにchainの要素に以下を追加する必要があります。


  
  

設定ファイル例

使用例


パブリックタイムラインのユーザIDを標準出力にプリントする簡単な使用例です。

課題

ということで、なんとかIvyリポジトリをWeb上に公開はできたわけですが、Groovyで動かす場合grapeConfig.xmlに設定を追加しにゃいかんあたりが面倒ですね。Maven2リポジトリならgrapeConfig.xmlにibiblioタグの追加だけでいけるのかな? @GrabResolver(name="hatenahaiku4j", root="path/to/maven2/repository") でいけるんじゃなかろうかと思われるので、次回はこのあたりをやってみる。


(つづく)

*1:http://groovy.codehaus.org/GrapeのCustomize Ivy settings参照