LoginSignup
2

More than 5 years have passed since last update.

posted at

updated at

Ivy + Archivaを試してみたよ

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がありますね。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2