Apache IvyとApache Archivaを使ってみたのでメモメモ
まず、Apache Ivyを使ってみます。
Ivyとはなんぞやというのは置いておいて、こちらにお任せ
http://d.hatena.ne.jp/ryoasai/20110101/1293904479
Ivyのインストールはとても簡単!Antのlibディレクトリの中にjarファイルを置くだけです。
これも上のページに書いてあるので割愛します。
ついでにexampleのhello-ivyもビルドしてみたけど、これも割愛しますね
というわけで、すべてコチラに集約されているのですべて割愛というひどい感じですが、
本番はここから先ですよ!
Apache Archivaを使ってみるよ
例によって参考URLを
http://labs.n2sm.co.jp/?p=128
これに従ってインストール起動。やっぱり割愛
起動できたら、Archivaのマニュアルにしたがって、使ってみます。
http://archiva.apache.org/docs/1.3.6/quick-start.html
http://localhost:8080/archiva/browse/junit/junit/3.8.1/
にアクセスすると、artifactがないよって起こられます。
http://localhost:8080/archiva/repository/internal/junit/junit/3.8.1/junit-3.8.1.jar
にアクセスするとお見事!junit-3.8.1.jarがダウンロードできました。
そして、再び
http://localhost:8080/archiva/browse/junit/junit/3.8.1/
にアクセスすると、はい。ちゃんとjunitがinternal Repositoryに置かれています。
ちょいと解説すると、Archivaはリモートリポジトリ(ここではセントラルリポジトリですね)にあるファイルをインハウスにダウンロードしてくれます。
Proxyとして動作してくれるということですね。これでリモートリポジトリがダウンしていて使えない!みたいなときでも安心ですし、ローカルネットワークからダウンロードできるので速度面でもうれしいです。
さらに社内でつくったモジュールも同じリポジトリからダウンロードできるので、設定がらくちんというメリットもあります。
そういうわけで、IvyからArchivaをつかってみる
またまた
http://d.hatena.ne.jp/ryoasai/20110101/1293904479
ここを参考に、今度はレゾルバを使ったサンプル(chainedresolvers-project)を試してみます。
まず、最初にそのままビルドすると、上のサイトの通りに
[ivy:retrieve] found commons-lang#commons-lang;2.0 in ibiblio
[ivy:retrieve] found org.apache#test;1.0 in libraries
って返って来ますね。
それでは、Archivaからjarファイルを取ってくるようにしてみましょう。
settings/ivysettings.xmlの要素を以下のように置き換えます。
<url name="inhouse" m2compatible="true">
<artifact pattern="http://localhost:8080/archiva/repository/internal/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"/>
</url>
そして、再びantを実行すると…
[ivy:retrieve] found commons-lang#commons-lang;2.0 in inhouse
[ivy:retrieve] found org.apache#test;1.0 in libraries
ってでましたね!
そして
http://localhost:8080/archiva/browse/commons-lang/commons-lang/2.0
にちゃんとcommons-langがありますね。