1

私たちはツタを通して瓶を管理しています。私たちのプロジェクトは、ivy が処理する Common.jar に依存しています。これはすべて素晴らしいことで、最新の jar がリポジトリからローカル リポジトリにプルされます。

ただし、私たちのチームは Common.jar に変更を加え、コミットする前にプロジェクトに対してテストしたいと考えています。Common.jar をローカル クラスパスに追加して、ローカル リポジトリの ivy 依存関係を本質的にオーバーライドしたいと考えています。

ここで最善のアプローチは何ですか?Common.jar を lib ディレクトリに追加し、ビルド パスに追加する必要がありますか?

4

2 に答える 2

0

ローカルリゾルバーを「強制モード」にしたいと思います。ivysettings.xml でローカル リゾルバーに force="true" を設定します。

強制モードの説明を参照してください: http://ant.apache.org/ivy/history/latest-milestone/settings/resolvers.html

(参照: Ivy: 依存関係のローカル スナップショットを強制する)

于 2013-02-05T22:12:23.997 に答える
0

構成を使用して依存関係を区別する

<configurations>
   <conf name="common" description="Used for common jar"/>
   <conf name="others" description="Other 3rd party dependencies"/>
   <conf name="norm" extends="common,others" description="Normal complete list of dependencies"/>
</configurations>

<dependencies>
   <dependency ... module="common" ... conf="common->default"/>

   <dependency ... conf="others->default"/>
   <dependency ... conf="others->default"/>
</dependencies>

"extends" 属性を使用して、依存関係のユニオン セットを作成する方法に注意してください。その後、ツタによってコンテンツが制御されるビルド内にクラスパスを作成できます。

<ivy:cachepath pathid="others.path" conf="others"/>
<ivy:cachepath pathid="norm.path"   conf="norm"/>

最初のパスは、ローカルに構築された common.jar に対するテストに使用されます。2 番目のパスには、リポジトリから取得した共通の jar が追加で含まれます。

于 2013-02-06T00:20:59.890 に答える