私はcommons-httpclient [2.0](コンパイル)に依存するプロジェクトを持っています。Maven 2 - テストとコンパイルの異なる依存バージョン
jbehaveのテスト - jbehave-core 3.4.5(テスト)を書いてみたいと思います。 この両方の依存関係は、commons-langに依存しますが、1.0.1と2.5の異なるバージョンです。
私はMVNパッケージを実行すると、私はテストセクションで[BUIDのFAILURE]を取得します。 私のテストケースの例外は、確実な-プラグインの出力であり:
java.lang.NoSuchMethodError: org.apache.commons.lang.StringUtils.substringBeforeLast(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
私は、ソースコードで見たよう - コモンズ・ラング1.0.1で - 確かに、何StringUtils.substringBeforeLast(...)メソッドはありません。 mavenがなぜテストでjbehave-coreからではなく、commons-httpclient(コンパイル)からcommons-langを使用するのですか?
私はこの矛盾する依存関係をcommons-httpclientで除外する余裕がないので、コンパイル時にとどまる必要があります。
どうすれば解決できますか? - テスト時にはcommons-lang 2.5バージョン、コンパイル時には1.0.1。
これは機能しました。ありがとう。 m2eclipseのプラグインでは、私は 'commons-httpclientサブカテゴリでは(矛盾の魔女2.5のために)コンパイルされていますが、これはおそらくm2eclipseの問題です – Xeon
これは私にとってはうまくいかず、理由はわかりません - http:// stackoverflow .com/questions/9364511/maven-different-dependency-in-test –