Revision 7 as of 2009-12-24 07:46:19

Clear message
Locked History Actions

ivy/IvyDE

IvyDEの使い方

ここでは、Eclipse用のプラグインIvyDEを使って、できるだけ簡単に依存関係の定義・解決と、Antのビルドファイルからそれを使う方法をさぐってみる。

IvyDEはEclipse用のプラグインである。2009/12現在のバージョンは2.0.0。Eclipseは3.3を利用している。

IvyDEのインストール

アップデートサイトから簡単にインストールできる。

単純に新規リモートサイトとして

とすれば後はEclipseがよきにはからってくれる。

Antのクラスパスの設定

IvyDEをEclipseにインストールすると、IvyDEプラグインと共に、自動的にivy本体のjarファイルもEclipseのpluginsフォルダに格納される。

とりあえずは不要だが、最終的にはAntを使いたいので、AntからIvyのタスクを呼び出せるようにしなければならない。そのためには、このIvy本体のjarファイルをAntのクラスパスに登録しておく。

これをやっておかないと、Antを実行したときに、

ビルド・ファイル: C:......build.xml

resolve:

ビルドに失敗しました。
C:.....build.xml:7: Problem: failed to create task or type antlib:org.apache.ivy.ant:retrieve
Cause: The name is undefined.

というエラーが発生する。

「ウインドウ>設定」メニューを選択し、クラスパスタブのAntホーム項目を選択。外部jarファイルの追加をクリックし、Eclipseのpluginsフォルダ直下の org.apache.ivy_*.jarを選択すればよい。

ivy.xmlの作成と編集

ivy.xmlに依存ライブラリを記述して、それをEclipseプロジェクトのビルドパスに含める。 こうすることにより、そのプロジェクト内のJavaソースから依存ライブラリを利用することができる。

  • ごく普通にEclipseにてJavaプロジェクトを作成する。
  • そのプロジェクトを選択し「ファイル>新規作成>その他」をメニューを選択。IvyDEからIvy fileを選択する。「次へ」を押して必要事項を記入。Containerにはこのプロジェクトを指定、Organization, Moduleはivy.xmlに指定したいものを入力。

  • ivy.xmlが作成される。
  • ivy.xmlにdependencyを記述する。例えば以下のようになる。

<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="cryptomedia" module="ivyTest" status="integration"></info>
  <dependencies>
    <dependency org="org.apache.wicket" name="wicket" rev="1.4.4"/>
  </dependencies>
</ivy-module>
  • ivy.xmlを右クリックして、Add Ivy Libraryを選択し、表示されたダイアログで「終了」を選択。
  • すると、プロジェクトにivy.xmlとは別に「ivy.xml[*]」というノードが現れる。それを展開してみると依存ライブラリが表示される。
  • Eclipseのビルドパスにそれらのライブラリが追加されているので、Javaソースを作成して、そのライブラリを呼び出すようなコードを書くことができる。

依存ライブラリを追加あるいは削除したい場合は、単純にivy.xmlを編集すれば保存した途端に、追加あるいは削除されたdependencyが解消される。 同時にビルドパス上のライブラリから不要なものが消え、必要なものが追加される。

Maven2のPOMファイルの利用

以下はm2eclipseプラグインがインストール済みであるものとする。

  • Javaプロジェクトを作成する。
  • プロジェクトを右クリックして「新規作成>その他」メニューを選択。Maven/Maven POM fileを選択して、次へで終了まで。
  • POMファイルにdependencyを追加してみる。この時点ではEclipseのビルドパスに依存ライブラリは追加されない。
  • プロジェクトを右クリックし、新規>ファイル作成でivysettings.xmlという名前のファイルを作成し、以下のように記述。

<ivysettings>
        <conf defaultResolver="ibiblio"/>
        <resolvers>
                <ibiblio name="ibiblio" />
        </resolvers>
</ivysettings>
  • pom.xmlを右クリックし、Add Ivy Libraryを選択。
  • Mainタブでenable project specific settingsにチェックし、ivy settings pathに「project:///ivysettings.xml」と入力
  • configurationsの中のcompileとruntimeのみをチェック状態にする。

antを使う

<project xmlns:ivy="antlib:org.apache.ivy.ant" name="hello-ivy" default="resolve">
    
    <!-- ================================= 
          target: resolve              
         ================================= -->
    <target name="resolve" description="--> retrieve dependencies with ivy">
        <ivy:retrieve />
    </target>
</project>

<project xmlns:ivy="antlib:org.apache.ivy.ant" name="hello-ivy" default="resolve">
    <target name="resolve" description="--> retrieve dependencies with ivy">
        <ivy:configure />
         <ivy:resolve file="pom.xml" conf="compile" />
                <ivy:retrieve/> 
    </target>
</project>