Gradle: anula la dependencia transitiva por clasificador de versión
Una de las dependencias declaradas en mi proyecto tiene una dependencia transitiva de'com.google.guava:guava:15.0'
. Pero mi aplicación implementada en WAS / Weblogic no funciona debido a un problema de CDI que se ha solucionado en'com.google.guava:guava:15.0:cdi1.0'
. (misma versión, pero con clasificador) Necesito decirle a Gradle que use este frasco durante la compilación y el empaquetado. Estoy tratando de averiguar cómo podemos anular esta dependencia transitiva con un clasificador de versión específico de jar.
Probé los siguientes enfoques:
Se agregó la dependencia explícitamente:compile 'com.google.guava:guava:15.0:cdi1.0'
. Pero ambos frascos se incluyeron en la WAR resultante.Se agregó la dependencia explícitamente y se definió una estrategia de resolución:
configurations.all {
resolutionStrategy {
force 'com.google.guava:guava:15.0:cdi1.0'
}
}
Incluso esto no funcionó.
Definió una estrategia de resolución para verificar y cambiar la versión.
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group + ":" + details.requested.name == 'com.google.guava:guava') {
details.useVersion "15.0:cdi1.0"
//details.useTarget "com.google.guava:guava:15.0:cdi1.0"
}
}
}
Incluso esto no funcionó.
Necesito sus sugerencias sobre cómo abordar este problema.