アイビー構成を使用する必要があります。これは、依存関係の任意のグループを管理するための非常に柔軟なメカニズムです。
以下の例では、jar の各バージョンを個別の構成に配置します。これは、ivy cachepathタスクを使用して、後で 2 つのクラスパスを作成するために使用できます。
例
アイビー.xml
<ivy-module version="2.0">
<info organisation="com.myspotontheweb" module="demo"/>
<configurations>
<conf name="compile1" description="Required to compile application1"/>
<conf name="compile2" description="Required to compile application2"/>
</configurations>
<dependencies>
<!-- compile1 dependencies -->
<dependency org="asm" name="asm-all" rev="3.2" conf="compile1->master"/>
<!-- compile2 dependencies -->
<dependency org="asm" name="asm-all" rev="2.2.3" conf="compile2->master"/>
</dependencies>
</ivy-module>
ノート:
- バージョン 2.2.1は Maven Central に存在しません
- 構成マッピング "??? -> master" に注意してください。Maven では、リモートマスター構成マッピングは依存関係なしでメイン モジュール アーティファクトに解決されます。(を参照)
build.xml
<project name="demo" default="init" xmlns:ivy="antlib:org.apache.ivy.ant">
<target name="init" description="Use ivy to resolve classpaths">
<ivy:resolve/>
<ivy:report todir='build/ivy' graph='false' xml='false'/>
<ivy:cachepath pathid="compile1.path" conf="compile1"/>
<ivy:cachepath pathid="compile2.path" conf="compile2"/>
</target>
<target name="clean" description="Clean built artifacts">
<delete dir="build"/>
</target>
<target name="clean-all" depends="clean" description="Additionally purge ivy cache">
<ivy:cleancache/>
</target>
</project>
ノート:
- アイビー レポートを生成することは常に良い考えです。どのアイビー構成にどの依存関係が存在するかがわかります。
- この例では、ANT パスを管理する ivy を示しています。また、webapp WAR ファイルのようなものをアセンブルするときに、ivy retrieve タスクで ivy 構成を使用して、ローカルの「lib」ディレクトリにデータを入力することもできます。