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?

有帮助吗?

解决方案

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

其他提示

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'
        }
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top