如何忽略Gradle中所有依赖项的特定可传递依赖项

如何忽略Gradle中所有依赖项的特定可传递依赖项,gradle,dependency-management,transitive-dependency,Gradle,Dependency Management,Transitive Dependency,我怎么能忽略Gradle中的特定传递依赖项 例如,许多库(如Spring和…)依赖于commons日志记录,我想用SLF4J(及其jcl-over-SLF4J桥)替换commons日志记录) 在我的gradle脚本中是否有一次提到它,而不是针对依赖于公共日志记录的每个依赖项 我正在考虑一个脚本,对所有依赖项进行迭代,并在所有依赖项上添加一些exclude,是否有更好的解决方案?这个脚本是什么样子的?在这里遇到了同样的问题,但最终使用下面的代码进行了实际的替换。出于完整性的考虑发布它 config

我怎么能忽略Gradle中的特定传递依赖项

例如,许多库(如Spring和…)依赖于
commons日志记录
,我想用
SLF4J
(及其jcl-over-SLF4J桥)替换
commons日志记录

在我的gradle脚本中是否有一次提到它,而不是针对依赖于
公共日志记录的每个依赖项


我正在考虑一个脚本,对所有依赖项进行迭代,并在所有依赖项上添加一些
exclude
,是否有更好的解决方案?这个脚本是什么样子的?

在这里遇到了同样的问题,但最终使用下面的代码进行了实际的替换。出于完整性的考虑发布它

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

或者:
configurations.all{exclude group:'commons logging'}
。有没有办法排除某个特定版本的组?感谢您的回答和Gradle在处理此类任务时的优雅。我想补充一点,在此期间,新的Gradle版本已经发布,并且有模块替换。我还没试过,但看起来他们可能会做同样的事情。我来问这个问题,找到了更好的答案请尝试解决策略: