gradle 无法设置DefaultExternalModuleDependency的只读属性“group”的值

x4shl7ld  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(305)

我正在解决一个新的库在构建过程中引起的重复问题。有一些重复的类或整个bouncycastle包。这个问题是默认的排除类或整个组的方法带来的:

Caused by: groovy.lang.GroovyRuntimeException: Cannot set the value of read-only property 'group' for DefaultExternalModuleDependency{group='org.web3j', name='core', version='4.8.7-android', configuration='default'} of type org.gradle.api.internal.artifacts.dependencies.DefaultExternalModuleDependency

代码本身:

implementation('org.web3j:core:4.8.7-android') {
    exclude(group = 'org.bouncycastle')
}

在过去几年中,exclude用法是否发生了一些变化?

f87krz0w

f87krz0w1#

这只是一个语法问题,exclude方法需要一个Map参数。看起来您使用的是Groovy DSL,而在Groovy中,Map是使用:字符创建的(在KotlinDSL中,您将使用=,正如您所做的那样)
因此,只需将=赋值替换为:,如下所示:

implementation('org.web3j:core:4.8.7-android') {
        exclude(group : 'org.bouncycastle')
    }

请在此处查看一些示例https://docs.gradle.org/current/userguide/dependency_downgrade_and_exclude.html#sec:excluding-transitive-deps

相关问题