Я создал собственный плагин 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 [...]
Впереди спасибо!
@tim_yates большое спасибо за интерес к моему вопросу. После некоторого чтения из предоставленной вами ссылки я пришел к решению и опубликую его здесь, чтобы оно осталось в качестве ответа. Еще раз большое спасибо! :)
Вы ищете расширение: docs.gradle.org/current/userguide/…