Gradle - 排除嵌套的传递依赖

Posted

技术标签:

【中文标题】Gradle - 排除嵌套的传递依赖【英文标题】:Gradle - Exclude Nested Transitive Dependencies 【发布时间】:2017-05-17 22:58:57 【问题描述】:

以下自定义启动依赖项具有许多传递依赖项。这些传递依赖项中很少有引用 org.hibernate 组。我在 build.gradle 文件中更新了以下内容以排除依赖项。但是,当我运行“gradle dependencies”并查看依赖树时,它似乎并没有被删除。是否应该修改某些内容以排除嵌套的传递依赖?

compile("com.comp.service:service-boot:3.0.+") 
    exclude group: 'org.hibernate'

【问题讨论】:

【参考方案1】:

使用如下块,我希望它的工作-

    compile("com.comp.service:service-boot:3.0.+") 
     exclude group: 'org.hibernate'

【讨论】:

对不起,这是一个错字。我用过组。我已经更正了原帖。这并不排除依赖。【参考方案2】:

添加configurations 部分:

dependencies 
    ....


configurations 
    all*.exclude group: 'org.hibernate'

您还可以使用module 来缩小排除范围(如果单独使用group 删除了太多传递依赖项)。

来源:

how to properly configure gradle build to avoid including log4j and slf4j from the resulting jar? https://docs.gradle.org/current/userguide/dependency_management.html#sec:how_to_declare_your_dependencies (#25.4.7) http://mrhaki.blogspot.ca/2012/10/gradle-goodness-exclude-transitive.html

【讨论】:

以上是关于Gradle - 排除嵌套的传递依赖的主要内容,如果未能解决你的问题,请参考以下文章

Android Gradle 插件Gradle 依赖管理 ⑦ ( dependencies 传递依赖设置 | transitive 关闭依赖传递配置 | exclude 排除子依赖配置 )

Gradle-5.3:依赖-管理依赖的版本(传递(transitive)排除(exclude)强制(force)动态版本(+))

Android Gradle 插件Android 依赖管理 ⑥ ( 依赖冲突处理 | transitive 依赖传递设置 | exclude 依赖排除设置 | force 强制指定依赖库 )

Gradle 排除依赖非常混乱

Gradle 传递依赖排除未按预期工作。 (我如何摆脱 com.google.guava:guava-jdk5:13.0 ?)

gradle 排除jar包依赖