我有一個項目依賴於commons-httpclient [2.0](compile)。Maven 2 - 測試和編譯中的不同依賴版本
我想寫一些jbehave測試-jbehave-core 3.4.5(test)。 這兩個依賴依賴於commons-lang,但是在不同的版本中 - 1.0.1和2.5。
當我執行MVN包我得到了測試部分[打造專業化失敗。 沒有爲我的萬無一失,插件輸出測試用例的異常:
java.lang.NoSuchMethodError: org.apache.commons.lang.StringUtils.substringBeforeLast(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
正如我看了源代碼 - 在公共琅1.0.1 - 事實上,沒有StringUtils.substringBeforeLast(...)方法。 爲什麼maven在commons-httpclient(compile)中使用commons-lang,而不是在jbehave-core中使用commons-lang?
我不能排除commons-httpclient中這個衝突的依賴關係,所以它必須保持編譯時間。
那麼這怎麼解決呢? - commons-lang 2.5版本在測試中,1.0.1在編譯時。
這應該是測試 不是測試 –
它的工作!謝謝。在m2eclipse插件中,我有'(ommited for conflict witch 2.5)[編譯]'在commons-httpclient子類別中,但這可能是m2eclipse問題 – Xeon
這對我不起作用,我不知道爲什麼 - http:// stackoverflow .com/questions/9364511/maven-different-dependency-version-in-test –