PerlやPython、RubyのようなLL言語には、「CPAN」「easy_install」「gem」といった、Webからライブラリをダウンロードして利用する機能があります。Javaでも「Maven」を使えば、ビルドファイルに記述したライブラリをネットワークを経由して自動的にインストールできるというのは@ITの読者なら、ご存じかと思います。
しかしながら、ビルドツールMavenに移行しておらず、「Ant」を利用しているプロジェクトも、たくさんあるかと思います。
そんなプロジェクトでも、「Apache Ivy」(以下、Ivy)を使えば、Mavenリポジトリにある膨大なJavaライブラリをAntから利用でき、ビルドシステムをMavenに変更することなく、Mavenのライブラリ管理の恩恵を受けることができるということを、ご存じでしょうか。
本稿では、Apache IvyとEclipse上でのIvyの利用をサポートする「IvyDE」を利用したJavaライブラリ管理について紹介します。AntやMavenの基礎的なところを知りたい方は、少し古いですが、以下の記事を参照しておいてください。
Ivyは、「The Agile Dependency Manager」をキャッチフレーズとして開発されているライブラリの依存関係を管理するツールです。もともと「Jayasoft」という企業が開発していましたが、Ivy 2.0からAntプロジェクトに統合され、開発が継続されています。Ivyは次のような特徴を持ちます。
IvyはAntのタスクとして利用できるので、Antユーザーであれば簡単に利用できます。
Ivyに、利用したいライブラリを設定しておくと、そのライブラリを動作させるのに必要なライブラリも、Ivyが自動的に整備してくれるので、依存関係を自動的に解決してくれます。
Ivyを利用したプロジェクトは、Ivyを使わなくても利用できるようになります。1度Ivyを利用してライブラリをコピーしておけば、後はIvyがなくても利用可能です。
EclipseのプロジェクトにIvyを統合する「IvyDE」プラグインがあります。
まずは、IvyDEとIvyをEclipseにセットアップする方法を説明します。Eclipseには、Eclipse 3.6をベースとしたPleiades 3.6を利用しました。
EclipseのアップデートサイトにIvyDEのサイトのURL「http://www.apache.org/dist/ant/ivyde/updatesite」を指定して、下記のプラグインをインストールします。
次に、IvyのAntタスクを定義したJARファイルをAntのクラスパスに追加します。
Eclipseメニューの[ウィンドウ]→[設定]→[Ant]→[ランタイムを」を選択し、「クラスパス]→[Antホーム項目]→[外部Jar追加]で追加するJARファイルとして、Eclipseをインストールしたディレクトリの下にある「plugins/org.apache.ivy.eclipse.ant_x.x.x/ivy.jar」(x.x.xはバージョンにより異なる)を選択し、IvyのJARファイルをAntのクラスパスに追加します。
準備ができたら、Ivyを利用してみましょう。Ivyを利用する前に、Ivyを利用するJava(Java EE)プロジェクトを開きます。Ivy用の設定ファイル「ivy.xml」を定義し、そこに依存関係を記述することで、IvyDEが自動的に定義したライブラリにクラスパスを通してくれます。
また、Antのビルドファイルを記述して実行することで、必要なJARファイルをプロジェクトのフォルダにダウンロードできます。ここでは、動的Webプロジェクトを例に使い方を紹介します。
ライブラリを定義するivy.xmlを作成します。Eclipseメニューの[ファイル]→[新規]→[その他]から[IvyDE]→[Ivy file]を選択し、プロジェクトのルートディレクトリにivy.xmlを作成します。
ここからivy.xmlに利用したいライブラリを定義していきます。Ivyを使うと、インターネット上でたくさんのJavaライブラリを管理するMavenのリポジトリを利用できます。ここでは、MavenのリポジトリのJARを追加する方法を紹介します。
インターネット上にあるMavenのライブラリを検索できる「Maven Repository」から、利用したいライブラリを検索します。
見つかったライブラリをクリックし、さらにバージョンをクリックすると、そのライブラリを利用するための設定を取得できます。Ivyで利用するための設定は、「Apache Ivy(ant)」と書かれた欄に記述されています。
例えば図2を見ると、ライブラリの定義は、以下であることが分かります。
<dependency org="commons-logging" name="commons-logging-api" rev="1.1"/>
ivy.xmlにdependencies要素を追加して、先ほど検索した結果を基にライブラリを定義します。
次ページでは、引き続きIvyの基本的な使い方について解説し、配布物にJARファイルを同梱する方法や、プロキシ環境利用時でのIvyDEの注意点も紹介します。
Copyright © ITmedia, Inc. All Rights Reserved.