Gradle: Substituir dependência transitiva pelo classificador de versão
Uma das dependências declaradas no meu projeto tem uma dependência transitiva em'com.google.guava:guava:15.0'
. Mas meu aplicativo implantado no WAS / Weblogic não funciona devido a um problema de CDI que foi corrigido no'com.google.guava:guava:15.0:cdi1.0'
. (mesma versão, mas com classificador) preciso informar ao gradle para usar este jar durante a compilação e o empacotamento. Estou tentando descobrir como podemos ignorar essa dependência transitiva com um classificador de versão específico do jar.
Tentei as seguintes abordagens:
Adicionada a dependência explicitamente:compile 'com.google.guava:guava:15.0:cdi1.0'
. Mas ambos os frascos foram incluídos na guerra resultante.Adicionada a dependência explicitamente e definida uma estratégia de resolução:
configurations.all {
resolutionStrategy {
force 'com.google.guava:guava:15.0:cdi1.0'
}
}
Mesmo isso não funcionou.
Definiu uma estratégia de resolução para verificar e alterar a versão.
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"
}
}
}
Mesmo isso não funcionou.
Precisa de suas sugestões sobre como esse problema pode ser resolvido.