Kotlin 如何将init脚本中定义的类导入build.gradle?
我正在用init脚本编写gradle扩展,但我不知道如何在build.gralde中引用该扩展Kotlin 如何将init脚本中定义的类导入build.gradle?,kotlin,gradle,gradle-kotlin-dsl,Kotlin,Gradle,Gradle Kotlin Dsl,我正在用init脚本编写gradle扩展,但我不知道如何在build.gralde中引用该扩展 // init.gradle.kts allprojects { extensions.create("message", MessageExtension::class) } open class MessageExtension(objects: ObjectFactory) { // A configurable greeting val greet
// init.gradle.kts
allprojects {
extensions.create("message", MessageExtension::class)
}
open class MessageExtension(objects: ObjectFactory) {
// A configurable greeting
val greeting: Property<String> = objects.property()
}
但是build.gradle.kts对消息的引用未解析
// build.gradle.kts
message.greeting = "hi"
// ^ Unresolved reference: message
// build.gradle.kts
val messages = project.extensions.findByType(MessageExtension::class)
// ^ Unresolved reference: MessageExtension
如果我尝试按类型查找扩展,则类也无法解析
// build.gradle.kts
message.greeting = "hi"
// ^ Unresolved reference: message
// build.gradle.kts
val messages = project.extensions.findByType(MessageExtension::class)
// ^ Unresolved reference: MessageExtension
我已尝试在init.gradle.kts中声明一个包并将其导入,但导入也未解决。在您的build.gradle.kts中尝试此操作:
// build.gradle.kts
message.greeting = "hi"
// ^ Unresolved reference: message
// build.gradle.kts
val messages = project.extensions.findByType(MessageExtension::class)
// ^ Unresolved reference: MessageExtension
the<MessageExtension>().greeting = "hi"
the()
不确定这是否可行。也许这与此相关:MessageExtension未解析,它与findByType等效。