連載
» 2011年05月26日 00時00分 公開

ユカイ、ツーカイ、カイハツ環境!(22):Ant使いでもMavenのライブラリ管理ができるIvyとは (1/2)

[岡本隆史,@IT]

AntでもMavenの旨味を甘受? それって、アリ?

 PerlPythonRubyのような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の基礎的なところを知りたい方は、少し古いですが、以下の記事を参照しておいてください。

  • AntでJavaのビルドを簡単にしよう
    [連載]現場に活かすJakarta Project(2)
    ファイル数が多くなると、とかく面倒になるビルド。Java IDEに頼ることなく、どんな環境でも簡単にビルドできるAntを活用してみよう
  • Eclipseからビルドツール「Ant」を使う
    連載:Eclipse徹底活用(1)
    Eclipse 2.1ではAnt対応が強化された。EclipseとAntを組み合わせて使うと、ソースファイルがどんなに多くてもトラブルなくビルドが行える
  • Eclipseプラグインq4eでカンタンMaven入門
    ビルドやテスト、レポート作成、依存ライブラリ追加を自動化するMavenと、その操作を簡単にするEclipseプラグイン「q4e」を紹介。仕事が楽になるのでAntに代わるビルドツールとして使ってみては?

Apache Ivy&IvyDEの4つの特徴

 Ivyは、「The Agile Dependency Manager」をキャッチフレーズとして開発されているライブラリの依存関係を管理するツールです。もともと「Jayasoft」という企業が開発していましたが、Ivy 2.0からAntプロジェクトに統合され、開発が継続されています。Ivyは次のような特徴を持ちます。

【1】Antと統合して利用できる

 IvyはAntのタスクとして利用できるので、Antユーザーであれば簡単に利用できます。

【2】依存関係を解決

 Ivyに、利用したいライブラリを設定しておくと、そのライブラリを動作させるのに必要なライブラリも、Ivyが自動的に整備してくれるので、依存関係を自動的に解決してくれます。

【3】Ivyを利用したプロジェクトはIvyに深く依存しない

 Ivyを利用したプロジェクトは、Ivyを使わなくても利用できるようになります。1度Ivyを利用してライブラリをコピーしておけば、後はIvyがなくても利用可能です。

【4】Eclipseのプラグインが利用可能

 EclipseのプロジェクトにIvyを統合する「IvyDE」プラグインがあります。

Eclipse 3.6にIvyをセットアップ

 まずは、IvyDEとIvyをEclipseにセットアップする方法を説明します。Eclipseには、Eclipse 3.6をベースとしたPleiades 3.6を利用しました。

IvyDEのインストール

 EclipseのアップデートサイトにIvyDEのサイトのURL「http://www.apache.org/dist/ant/ivyde/updatesite」を指定して、下記のプラグインをインストールします。

  • Apache Ivy library
  • Apache IvyDE Eclipse plugin

Antのクラスパスの設定

 次に、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のクラスパスに追加します。

図1 Antのクラスパスの設定 図1 Antのクラスパスの設定

百聞は一見にしかず! Ivyを使ってみよう

 準備ができたら、Ivyを利用してみましょう。Ivyを利用する前に、Ivyを利用するJava(Java EE)プロジェクトを開きます。Ivy用の設定ファイル「ivy.xml」を定義し、そこに依存関係を記述することで、IvyDEが自動的に定義したライブラリにクラスパスを通してくれます。

 また、Antのビルドファイルを記述して実行することで、必要なJARファイルをプロジェクトのフォルダにダウンロードできます。ここでは、動的Webプロジェクトを例に使い方を紹介します。

ivy.xmlの作成

 ライブラリを定義するivy.xmlを作成します。Eclipseメニューの[ファイル]→[新規]→[その他]から[IvyDE]→[Ivy file]を選択し、プロジェクトのルートディレクトリにivy.xmlを作成します。

MavenのリポジトリのJARを追加

 ここからivy.xmlに利用したいライブラリを定義していきます。Ivyを使うと、インターネット上でたくさんのJavaライブラリを管理するMavenのリポジトリを利用できます。ここでは、MavenのリポジトリのJARを追加する方法を紹介します。

ライブラリの検索

 インターネット上にあるMavenのライブラリを検索できる「Maven Repository」から、利用したいライブラリを検索します。

http://mvnrepository.com/

 見つかったライブラリをクリックし、さらにバージョンをクリックすると、そのライブラリを利用するための設定を取得できます。Ivyで利用するための設定は、「Apache Ivy(ant)」と書かれた欄に記述されています。

図2 Maven Repositoryでの検索 図2 Maven Repositoryでの検索

 例えば図2を見ると、ライブラリの定義は、以下であることが分かります。

<dependency org="commons-logging" name="commons-logging-api" rev="1.1"/>

ライブラリの追加

 ivy.xmlにdependencies要素を追加して、先ほど検索した結果を基にライブラリを定義します。

<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info
organisation=""
module="webtest"
status="integration">
</info>
<dependencies>
<dependency org="commons-logging" name="commons-logging-api" rev="1.1"/>
</dependencies>

</ivy-module>


 次ページでは、引き続きIvyの基本的な使い方について解説し、配布物にJARファイルを同梱する方法や、プロキシ環境利用時でのIvyDEの注意点も紹介します。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。