Ivy 関数を実行するターゲットが、継続的ビルドおよびほとんどの開発者が実行するターゲットから完全に分離されるように、ant ビルドをセットアップしようとしています。1 つのターゲットに更新された依存関係をダウンロードしてもらいたいので、それをチェックインします。他のターゲットは、関連するディレクトリから *.jar を含めることでクラスパスを設定します。
私は2つの構成を持っています:
<configurations>
<conf name="compile" />
<conf name="test" />
</configurations>
私はいくつかの依存関係を持っています:
<dependency
org="my.org"
name="some-lib"
rev="latest.release"
conf="compile->default" />
<dependency
org="my.org"
name="some-test-lib"
rev="latest.release"
conf="test->default" />
そして、ivy:retrieve を使用して、これらの依存関係とその推移的な依存関係をダウンロードします。
<ivy:retrieve
pattern="lib/[conf]/[type]/[artifact]-[revision].[ext]"
sync="true"
file="ivy.xml" />
問題は、推移的な依存関係に起因する、コンパイル ディレクトリとテスト ディレクトリの間で jar が重複していることです。これらすべての jar をチェックインしてクラスパスの作成に使用したいので、重複は避けたいと思います。これは可能ですか?
lib/compile/jar/some-lib-1.0.jar
lib/compile/jar/ slf4j-api-1.5.11.jar
lib/test/jar/some-test-lib-1.0.jar
lib/test/jar/junit -4.7.jar
lib/test/jar/ slf4j-api-1.5.11.jar