Как получить параметры Groovy-класса внутри build.gradle (приложения) в настраиваемый плагин Gradle

Я создал собственный плагин Gradle для Android, написанный на Kotlin. Плагин работает корректно. Одна вещь, которую мне не хватает, - это выборка параметров из класса внутри моих приложений build.gradle (уровень приложения).

Итак, я применяю MyPlugin к приложению.

build.gradle (уровень приложения)

plugins{
   id 'com.example.MyPlugin'
}
....
....
ArchiveConfig{
   username 'James'
   password '12345678'
   debugApk false
}

внутри MyPlugin.kt в проекте MyPlugin

open class MyPlugin : Plugin<Project>{

   val archiveConfig: ArchiveConfig = project.extensions.create("ArchiveConfig", ArchiveConfig())   

   override fun apply(p : Project) {
      //some code
   }
}

//I believe here I should somehow fetch that ArchiveConfig values from build.gradle which is inside

open class ArchiveConfig(var username: String? = null
                         var password: String? = null
                         vardebugApk: Boolean = false) : GroovyObjectSupport() {
   //do something with data in plugin
}

Если я использую описанный подход, я получаю сообщение об ошибке

Could not find method ArchiveConfig() for arguments [...]

Впереди спасибо!

Вы ищете расширение: docs.gradle.org/current/userguide/…

tim_yates 08.04.2021 13:26

@tim_yates большое спасибо за интерес к моему вопросу. После некоторого чтения из предоставленной вами ссылки я пришел к решению и опубликую его здесь, чтобы оно осталось в качестве ответа. Еще раз большое спасибо! :)

Jaki 09.04.2021 00:10
1
2
26
0

Другие вопросы по теме