Kotlin DSL“;从「;找不到关键字

Kotlin DSL“;从「;找不到关键字,kotlin,gradle,package,gradle-kotlin-dsl,github-package-registry,Kotlin,Gradle,Package,Gradle Kotlin Dsl,Github Package Registry,我一直在尝试发布一个包。问题是,我在尝试运行Gradle时遇到以下错误: Script compilation error: Line 49: from(components["java"]) ^ Unresolved reference. None of the following candidates is applicable because of receiver type mismatch:

我一直在尝试发布一个包。问题是,我在尝试运行Gradle时遇到以下错误:

Script compilation error:

Line 49:           from(components["java"])
                   ^ Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: 
                       public inline fun <reified T : VersionControlSpec> VcsMapping.from(noinline configureAction: TypeVariable(T).() -> Unit): Unit defined in org.gradle.kotlin.dsl
                       public inline fun <T : VersionControlSpec> VcsMapping.from(type: KClass<TypeVariable(T)>, configureAction: Action<in TypeVariable(T)>): Unit defined in org.gradle.kotlin.dsl

如何修复此问题?

您没有提供出版物的类型,因此只使用基本的
出版物
from()
MavenPublication
的函数,因此需要明确指定需要
MavenPublication

publications {
    register<MavenPublication>("gpr") {
        from(components["java"])
    }
}
出版物{
注册(“gpr”){
来自(组件[“java”])
}
}

嗯,Idk,为什么我认为是一个关键词。这是可行的,但我仍然认为文件应该反映这一点。感谢您的回答^^文档中关于发布()的所有示例都指定了Kotlin和Gradle DSL的发布类型。也许在过去它不是必需的,然后它就改变了,idk。另外,我相信Gradle构建文件中没有特殊的关键字。有Kotlin/Gradle的关键字,只有函数和属性。
publications {
    register<MavenPublication>("gpr") {
        from(components["java"])
    }
}