У меня есть проект, который зависит от commons-httpclient [2.0] (компиляция).
Я хотел бы написать несколько тестов jbehave - jbehave-core 3.4.5 (test).Обе эти зависимости зависят от commons-lang, но в разных версиях - 1.0.1 и 2.5.
Когда я выполняю пакет mvn , я получаю [BUID FAILURE] в разделе тестов.Исключение для моего тестового примера в выходных данных плагина surefire:
java.lang.NoSuchMethodError: org.apache.commons.lang.StringUtils.substringBeforeLast(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
Как я посмотрел в исходном коде - в commons-lang 1.0.1 - действительно, нет StringUtils.substringBeforeLast (...)метод.Почему maven использует commons-lang из commons-httpclient (compile), а не из jbehave-core при тестировании?
Я не могу позволить себе исключить эту конфликтующую зависимость в commons-httpclient, поэтому она должна оставаться во время компиляции.
Так как это можно решить?- версия commons-lang 2.5 в тестировании и 1.0.1 во время компиляции.