如何从Gradle版本目录中排除依赖项?

3

我想执行与以下声明相当的操作:

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

但是在版本目录功能中,有这样一些内容:

dependencyResolutionManagement {
    versionCatalogs {
        libs {
            library('commons-lang3', 'org.apache.commons', 'commons-lang3').exclude {
                // group, module etc
            }
        }
    }
}
4个回答

2

1

有一种简单的方法可以做到这一点,但不幸的是没有记录:

implementation dependencies.create(libs.commons.beanutils.get()) {
    exclude group: 'commons-collections', module: 'commons-collections'
}

请注意get()调用 - 在这种情况下,beanutils是Provider<?>的一个实例,因此您需要手动解包它。

这对我来说结果是“无法将提供的符号转换为Dependency类型的对象”。 - Michael Böckling

0

这很难看但是有效

例如在 Kotlin 中:

vorbisspi = "com.googlecode.soundlibs:vorbisspi:1.0.3.3"

implementation(libs.mp3spi.get().let { "${it.module}:${it.versionConstraint.requiredVersion}" }) {
    exclude("javazoom.spi", "spi")
    exclude("junit", "junit")
}
    

0
在 libs.versions.toml 文件中。
[versions] 
retrofitCoroutinesAdapter = "0.9.2"

在 build.gradle(app) 文件中
implementation dependencies.create(libs.retrofitCoroutinesAdapter.get()) {
exclude group: 'org.jetbrains.kotlinx'
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接