0

アプリケーション A は log4net バージョン 1.2.10.0 を使用し、私の CI プロセスを使用してビルドされ、その結果、私の Ivy 共有フォルダーに保存されます。(ここは問題なし)

アプリケーション B はアプリケーション A を参照するだけでなく、log4net の新しいバージョン、つまり 1.2.11.0 も参照します。CI プロセスが依存関係をアプリケーション B のバイナリ フォルダーに解決するため、log4net.dll のバージョン 1.2.10.0 および 1.2.11.0 を取得しようとすると競合します。

個別/依存関係ごとのレベルで依存関係を上書きして新しいバージョンを取得し、この競合の到着時にビルドに失敗しないように Ivy に指示できる方法はありますか?

または、log4net のバージョン 1.2.10.0 を使用してアプリケーション A を再構築し、再リリースして、アプリケーション B の推移的な依存関係に関する問題が発生しないようにする必要がありますか?

4

1 に答える 1

2

あなたが抱えている問題は、推移的な依存関係の競合です。アプリケーション A の推移的な依存関係の 1 つが、アプリケーション B の直接的な依存関係と競合しています。Maven の場合と同様に、アプリケーション B で除外タグを使用します。

<dependencies>  
   <dependency org="org.hibernate" name="hibernate-core" rev="3.3.1.GA" conf='..'> 
       <exclude name='jaas' /> 
       <exclude name='jacc' />
   </dependency>
</dependencies>

Ivy: 推移的な依存関係を削除するにはどうすればよいですか? を参照してください。.

于 2012-08-20T14:38:11.717 に答える