在 gradle、名称或模块中排除瞬态依赖项的正确语法是什么?

What is the proper syntax of excluding transient dependencies in gradle, name or module?

我遇到过两种不同的语法变体来排除 gradle

中的瞬态依赖

一个使用名称,另一个使用模块。哪一个是正确的?

例如:

姓名:

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation group: 'org.springframework', name: 'spring-context', version: '5.3.19'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    
    implementation('org.springframework.boot:sprin  g-boot-starter-web') {
        exclude group: 'org.springframework', name: 'spring-context'
    }
}

或模块:

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation group: 'org.springframework', name: 'spring-context', version: '5.3.19'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    
    implementation('org.springframework.boot:sprin  g-boot-starter-web') {
        exclude group: 'org.springframework', module: 'spring-context'
    }
}

当前文档 (7.4.2) 显示 module:

https://docs.gradle.org/7.4.2/userguide/dependency_downgrade_and_exclude.html

implementation('commons-beanutils:commons-beanutils:1.9.4') {
    exclude group: 'commons-collections', module: 'commons-collections'
}

name 可能是一个遗留命名。使用当前文档的内容,module.