Как импортировать класс, определенный в сценарии инициализации, в build.gradle?

Я пишу расширение gradle в сценарии инициализации, но не знаю, как ссылаться на расширение в 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()
}

Я могу сослаться на message в отличном build.gradle, он рад вытаскивать message из воздуха.

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

Но ссылки build.gradle.kts на messages не разрешены.

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

Если я попытаюсь найти расширение по типу, класс также останется неразрешенным.

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

Я попытался объявить package в моем init.gradle.kts и импортировать его, но импорт также не разрешен.


person everett1992    schedule 03.09.2020    source источник
comment
Не уверен, возможно ли это. Возможно, это может иметь какое-то отношение: stackoverflow.com/q/55335866/12042788   -  person kdev    schedule 04.09.2020


Ответы (1)


Попробуйте это в своем build.gradle.kts:

the<MessageExtension>().greeting = "hi"
person Saurabh Thorat    schedule 05.09.2020
comment
MessageExtension не разрешено, это эквивалент findByType. - person everett1992; 08.09.2020