次のアイビー設定ファイル:
<ivysettings>
<settings defaultResolver="central"/>
<resolvers>
<ibiblio name="central" m2compatible="true"/>
<url name="my-repo">
<artifact pattern="http://myserver/myrepo/[organisation]/[artifact]/[revision]/[artifact].[ext]"/>
</url>
</resolvers>
<modules>
<module organisation="org.mycompany" resolver="my-repo"/>
</modules>
</ivysettings>
デフォルトで Maven Central からアーティファクトを取得し、HTTP サーバーからローカル アーティファクトを取得するように構成されています。
アップデート
アイビー.xml
ivy ファイルには特別なものはありません。依存関係と、それらを関連付ける構成を宣言するだけです。
<configurations>
<conf name="compile" description="Required to compile application"/>
</configurations>
<dependencies>
<!-- compile dependencies -->
<dependency org="org.slf4j" name="slf4j-api" rev="1.6.4" conf="compile->default"/>
<dependency org="org.mycompany" name="my-module" rev="1.0" conf="compile->default"/>
</dependencies>
ノート:
- 構成を使用するのはアイビーのベストプラクティスです。
build.xml
<target name="resolve" dependencies="Resolve build dependencies">
<ivy:resolve/>
<ivy:report todir='build/reports' graph='false' xml='false'/>
<ivy:cachepath pathid="compile.path" conf="compile"/>
..
</target>
ノート:
- ivycachepath タスクは、ivy 構成を入力済みの ANT クラスパスに変換します。非常に便利。
- アイビー レポート タスクは、クラスパス上の jar を通知します。
Ivy resolve ビルド出力
すべての魔法は設定ファイルにあります。ビルドを実行すると、次のようになります。
[ivy:resolve] found org.slf4j#slf4j-api;1.6.4 in central
[ivy:resolve] found org.mycompany#my-module;1.0 in my-repo
..
[ivy:resolve] downloading http://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.6.4/slf4j-api-1.6.4.jar ...
..
[ivy:resolve] downloading http://myserver/myrepo/org.mycompany/my-module/1.0/my-module.jar ...
ノート:
- my-repoリゾルバーは、「org.mycompany」グループ ID を持つモジュールに使用されます。
- それ以外はすべて、デフォルトのリゾルバーである Maven Central から取得されます。