如何在gradle项目中排除依赖关系?

4,441 阅读1分钟

本教程讲述了如何在gradle中排除依赖性。这篇文章还包括在groovy和kotlin脚本中排除jar文件的内容。

Gradle使用两种不同的版本语法来配置构建依赖性

如何在gradle中排除过渡性依赖?

这一节谈到了在runtimecompile 时对每个依赖的排除问题

**排除运行时的依赖。**有些时候,你有一些与直接依赖的版本有冲突的过渡性依赖。

这将从给定的输出jar或war文件中排除该依赖库。

假设org.springframework.security 模块有一个依赖项spring-security-web ,你想排除spring-security-web

你必须对groovy脚本进行如下配置

implementation('org.springframework.security.spring-security-taglibs:4.3.0') {
        exclude group: 'org.springframework.security', module: 'spring-security-web'
    }

Kotlin

implementation('org.springframework.security.spring-security-taglibs:4.3.0') {
        exclude(group='org.springframework.security', module= 'spring-security-web')
    }

使用exclude,它按组和模块排除模块,不支持版本。

排除编译依赖。在编译配置中,添加排除配置,在编译目标中排除模块和模块名称

编译('org.springframework.security.spring-security-taglibs:4.3.0'){ 排除组:'org.springframework.security', 模块。'spring-security-web' }

compile('org.springframework.security.spring-security-taglibs:4.3.0') {
        exclude(group='org.springframework.security', module= 'spring-security-web')
    }

如何在gradle项目中全局排除依赖?

有些时候,我们想排除适用于编译和运行时的全局依赖关系

使用configuration.all属性,你可以使用组和模块为依赖性添加排除选项。

configurations.all {
   exclude group:"org.slf4j", module: "slf4j-api"
}

总结

在本教程中,你学会了如何排除全局依赖,以及在编译和运行时依赖中排除每个依赖。

在gradle中,你只能用组和模块名来排除,但不能用版本配置来排除。