Pregunta

How can I ignore a specific transitive dependency in Gradle?

For example, many libraries (such as Spring and ...) depend on commons-logging, I want to replace commons-logging with SLF4J (and its jcl-over-slf4j bridge).

Is it any way in my gradle script to mention it once, and not for each dependency which depends on commons-logging?

I was thinking of an script, iterating on all dependencies and adding some exclude on all of them, is there any better solution? And how that script be like?

¿Fue útil?

Solución

configurations {
    compile.exclude group: 'commons-logging'
}

Otros consejos

Came here with the same problem but ended up using the following to do an actual replace. Posting it for completeness' sake.

configurations.all {
    resolutionStrategy.eachDependency {
        if(it.requested.name == 'commons-logging') {
            it.useTarget 'org.slf4j:jcl-over-slf4j:1.7.7'
        }
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top