简体   繁体   中英

How to import class defined in a init script to build.gradle?

I'm writing a gradle extension in an init-script but I don't know how to reference the extension in build.gralde.

// init.gradle.kts


allprojects {
  extensions.create("message", MessageExtension::class)
}

open class MessageExtension(objects: ObjectFactory) {
    // A configurable greeting
    val greeting: Property<String> = objects.property()
}

I can reference message in groovy build.gradle, it's happy to pull message from thin air.

// build.gradle (groovy)
message.greeting = "hi"

But build.gradle.kts references to messages are unresolved.

// build.gradle.kts
   message.greeting = "hi"
// ^ Unresolved reference: message

If I try to find the extension by type the class is also unresolved.

// build.gradle.kts
val messages = project.extensions.findByType(MessageExtension::class)
//                                           ^ Unresolved reference: MessageExtension

I've tried declaring a package in my init.gradle.kts and importing it, but the import is also unresolved.

在你的build.gradle.kts试试这个:

the<MessageExtension>().greeting = "hi"

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM