Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
IvyDEはEclipse用のプラグインである。2009/12現在のバージョンは2.0.0。 | ここでは、Eclipse用のプラグインIvyDEを使って、できるだけ簡単に依存関係の定義・解決と、Antのビルドファイルからそれを使う方法をさぐってみる。 |
Line 5: | Line 5: |
== インストール == |
IvyDEはEclipse用のプラグインである。2009/12現在のバージョンは2.0.0。Eclipseは3.3を利用している。 == IvyDEのインストール == |
Line 11: | Line 13: |
== ant用ライブラリの設定 == | 単純に新規リモートサイトとして |
Line 13: | Line 15: |
IvyDEをEclipseにインストールすると、自動的にivy本体のjarファイルもEclipseのpluginsフォルダに格納される。 もし別途ivy本体をダウンロードしないのであれば、eclipse内でantを実行するためにはそのpluginsフォルダ内のivyをantのパスに指定しておく。 さもないとantを実行したときに、 |
* Apache Ivy update site * http://www.apache.org/dist/ant/ivyde/updatesite とすれば後はEclipseがよきにはからってくれる。 == Antのクラスパスの設定 == IvyDEをEclipseにインストールすると、IvyDEプラグインと共に、自動的にivy本体のjarファイルもEclipseのpluginsフォルダに格納される。 とりあえずは不要だが、最終的にはAntを使いたいので、AntからIvyのタスクを呼び出せるようにしなければならない。そのためには、このIvy本体のjarファイルをAntのクラスパスに登録しておく。 これをやっておかないと、Antを実行したときに、 |
Line 28: | Line 39: |
org.apache.ivy_*.jarを選択する。 | org.apache.ivy_*.jarを選択すればよい。 |
Line 32: | Line 43: |
ivy.xmlに依存ライブラリを記述して、それをEclipseプロジェクトのビルドパスに含める。 こうすることにより、そのプロジェクト内のJavaソースから依存ライブラリを利用することができる。 |
|
Line 40: | Line 54: |
<info organisation="cryptomedia" module="ivyTest" status="integration"> </info> <dependencies> <dependency org="org.apache.wicket" name="wicket" rev="1.4.4"/> </dependencies> |
<info organisation="cryptomedia" module="ivyTest" status="integration"></info> <dependencies> <dependency org="org.apache.wicket" name="wicket" rev="1.4.4"/> </dependencies> |
Line 54: | Line 64: |
ivy.xmlを編集して保存した途端に、追加あるいは削除されたdependencyが解消される。同時にビルドパス上のライブラリが変更される。 |
依存ライブラリを追加あるいは削除したい場合は、単純にivy.xmlを編集すれば保存した途端に、追加あるいは削除されたdependencyが解消される。 同時にビルドパス上のライブラリから不要なものが消え、必要なものが追加される。 |
Line 89: | Line 100: |
{{{ <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> }}} |
IvyDEの使い方
ここでは、Eclipse用のプラグインIvyDEを使って、できるだけ簡単に依存関係の定義・解決と、Antのビルドファイルからそれを使う方法をさぐってみる。
IvyDEはEclipse用のプラグインである。2009/12現在のバージョンは2.0.0。Eclipseは3.3を利用している。
IvyDEのインストール
アップデートサイトから簡単にインストールできる。
単純に新規リモートサイトとして
- Apache Ivy update site
とすれば後は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>