【发布时间】:2021-09-26 22:36:05
【问题描述】:
我编写了一个名为 publish.gradle 的 .gradle 脚本,它配置了 publishing {} 以释放我的工件。
为什么要使用单独的脚本?我有多个模块,通过这样做,每个 可发布 模块只定义了一些变量。
模块build.gradle.kts:
// Module's blah blah
apply(from = "../publish.gradle")
publish.gradle:
apply plugin: 'maven-publish'
publishing {
publications {
// configure release process
}
}
我最近决定迁移到 Gradle Kotlin DSL。但是,有一个问题:
像这样添加publication {}:
plugins {
`maven-publish`
}
publication {
}
导致这个错误:
Expression 'publishing' cannot be invoked as a function. The function 'invoke()' is not found
Unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
public val PluginDependenciesSpec.publishing: PluginDependencySpec defined in org.gradle.kotlin.ds
总结为
PluginDependenciesSpec 不作为接收器存在
有什么区别?
TL;博士
我已将publishing {} 配置添加到单独的脚本中,该脚本在.gradle groovy 格式下有效,但我无法转换为.gradle.kts kotlin 格式。 publishing 是 PluginDependenciesSpec 类的扩展,脚本中不存在该类。
【问题讨论】:
标签: android gradle gradle-kotlin-dsl maven-publish