1

Ivy を使用して依存関係を管理していますが、easymock で問題が発生しています

私のivy.xmlファイルには次のものがあります:

 <dependency org="easymock" name="easymock" rev="2.5.+" conf="compile,test -> default" />

次に、他のライブラリの依存関係に従います。他のライブラリが別のバージョンの easymock を使用している場合に、少なくとも私のライブラリが正しいバージョンを取得することを期待しています。

しかし、私が解決した後、Eclipseでは、easymockの2つのバージョン(1.2と2.5)があり、1.2が最初にリストされていることがわかります。

単体テストを実行すると、org.easymock.internal.IMocksBehavior を受け取る org.easymock.internal.RecordState のコンストラクターで java.lang.NoSuchMethodError が発生します。

これは、古いバージョンの EasyMock を使用していることを示唆しています。

どうすればこの問題を回避できますか?

4

2 に答える 2

3

各構成について、ivy が使用しているバージョンを正確に確認するために、ivy 依存関係レポートを生成します。

  <ivy:resolve/>
  <ivy:report todir='${ivy.reports}' graph='false' xml='false'/>

通常、ivy が同じライブラリの 2 つのバージョンに遭遇すると、古いバージョンを「削除」します。

不適切な競合解決の問題を修正するには、ドコを読むことをお勧めします

アップデート

Ivy のコンフリクト アルゴリズムは、これまで常にうまく機能してきましたが、推移分析の複雑さの一部を完全には理解していなかったことを認めなければなりません。次の Maven の記事は読む価値があります。

http://guntherpopp.blogspot.com/2011/02/understanding-maven-dependency.html

于 2011-02-15T19:01:40.293 に答える
1

ibiblio ミラーで確認できる最新の easymock は rev 2.0 です。これは、2.5 が見つからず、古いバージョンが使用されていることを意味します。リゾルバーの設定とリビジョンを確認してください。また、たまにキャッシュをクリーンアップするのにも役立ちます (ivy:cleancache)。そのため、ivy はリポジトリでリビジョンを検索する必要があります。

于 2011-02-24T09:57:19.893 に答える