Как игнорировать определенную транзитивную зависимость от всех зависимостей в Gradle

Как я могу игнорировать определенную транзитивную зависимость в Gradle?

Например, многие библиотеки (такие как Spring и...) зависят от commons-logging, я хочу заменить commons-logging на SLF4J (и его модем jcl-over-slf4j).

Как бы то ни было в моем gradle script упоминать его один раз, а не для каждой зависимости, которая зависит от commons-logging?

Я думал о script, итерации по всем зависимостям и добавлении некоторых exclude для всех из них, есть ли лучшее решение? И как это будет выглядеть script?

Ответы

Ответ 1

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

Ответ 2

Пришел сюда с той же проблемой, но в конечном итоге использовал следующую замену. Проводя его для полноты.

configurations.all {
    resolutionStrategy.eachDependency {
        if(it.requested.name == 'commons-logging') {
            it.useTarget 'org.slf4j:jcl-over-slf4j:1.7.7'
        }
    }
}