Tengo proyecto que depende de commons-httpclient [2.0] (compilar).Maven 2 - diferentes versiones de dependencia en prueba y compilación
Me gustaría escribir algunas pruebas jbehave - jbehave-core 3.4.5 (prueba). Ambas dependencias dependen de commons-lang pero en diferentes versiones - 1.0.1 y 2.5.
Cuando ejecuto el paquete mvn me sale [FALLO BUID] en la sección de pruebas. Hay una excepción para mi caso de prueba en la producción segura-plugin:
java.lang.NoSuchMethodError: org.apache.commons.lang.StringUtils.substringBeforeLast(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
Al mirar en el código fuente - (...) Método de hecho, no hay StringUtils.substringBeforeLast - en commons-lang 1.0.1 . ¿Por qué maven usa commons-lang de commons-httpclient (compilar) y no de jbehave-core en las pruebas?
No puedo permitirme excluir esta dependencia conflictiva en commons-httpclient, por lo que debe permanecer en tiempo de compilación.
Entonces, ¿cómo se puede resolver esto? - Versión commons-lang 2.5 en pruebas y 1.0.1 en tiempo de compilación.
Eso debería ser prueba no pruebas –
¡Funcionó! Gracias. En el plugin m2eclipse tengo '(omitido para conflicto bruja 2.5) [compile]' en la subcategoría commons-httpclient, pero esto es probablemente problema m2eclipse – Xeon
Esto no funciona para mí, y no sé por qué - http: // stackoverflow .com/questions/9364511/maven-different-dependency-version-in-test –