私は大規模な Ivy プロジェクトを持っており、Eclipse では問題なく動作する私のコードが、ant で実行するとコンパイル エラーを引き起こすことに気付きました。問題を次の行に絞り込みました。
FileUtils.write(...).
この行はコンパイル中に失敗します --- メソッドが見つかりません。明らかに、私のコードは apache の commons-io ライブラリに依存しています。そして、現在の commons-io にこのメソッドがあることは明らかです。
http://commons.apache.org/io/apidocs/org/apache/commons/io/FileUtils.html
それで、何が得られますか?
これは私の ivy.xml に関連していると確信しています - > eclipse コンパイラは幸運にも (またはスマートに) commons-io の最新バージョンを使用していますが、私の ivy.xml はこの方法がない古いバージョンを使用しています。
ここで最も重要なことは、ant が明らかにこの jar の別のバージョンを使用しているということです。
だから - 私の質問は:
1) 指定した最新バージョンのライブラリを使用してコードを優先的にコンパイルするように ant/ivy に指示するにはどうすればよいですか? lib/ の依存関係の一部が古いバージョンの commons-io に依存している可能性があると想定しています.....
また :
2)このコンテキストでは、クラスローダーが複数のjar依存プロジェクトで重複を処理する方法に関して何を心配するかについてのヒントも私に役立ちます...