Привет всем, я использую библиотеку appDynamics, и документация объясняет только groovy Gradle, у меня проблема с преобразованием сценария groovy Gradle в kotlin Gradle DSL, и я пробовал несколько способов и несколько синтаксисов, и я даже использовал инструменты преобразования из groovy в Kotlin Gradle. не решил проблему после скрипта с groovy Gradle
adeum {
account {
name 'xxx'
licenseKey 'yyyy'
}
proguardMappingFileUpload {
failBuildOnUploadFailure true //should build fail if upload fails? Defaults to false.
enabled true //enables automatic uploads. Defaults to true.
}
}
[Ошибка][1] [1]: https://i.stack.imgur.com/tet7q.png
а также я должен упомянуть, что groovy работает нормально
Не все плагины Gradle работают в Kotlin... некоторые плагины могут использовать функции Groovy, что делает практически невозможным их использование из других языков JVM. Если у вас нет сложных файлов Gradle, просто используйте Groovy DSL, если это работает... тратить время на то, чтобы заставить Kotlin работать с простым файлом Gradle, может быть не лучшим использованием вашего времени.
У вас есть простой пример работающей отличной сборки DSL, на которую мы можем посмотреть, чтобы найти эквивалент kotlin?
Нет, это просто случайные ключи @tim_yates
вы правы @Renato Я решил это, написав код Kotlin, который использует Closure для приема этих плагинов.
Ах, я не знал, что в Котлине можно создавать замыкания Groovy.
Проблема в том, что в некоторых плагинах в ктс приходится использовать замыкание для определения пакетов плагинов
adeum {
account(closureOf<com.appdynamics.android.gradle.ADPluginExtension.Account> {
this.name = "xxx"
this.licenseKey = "yyy"
})
proguardMappingFileUpload(closureOf<com.appdynamics.android.gradle.ADPluginExtension.ProguardConfig> {
this.failBuildOnUploadFailure = true
this.enabled = true
})
}
Можно изменить adeum на configure<ADPluginExtension>, например:
configure<ADPluginExtension> {
account(closureOf<com.appdynamics.android.gradle.ADPluginExtension.Account> {
this.name = "xxx"
this.licenseKey = "yyy"
})
proguardMappingFileUpload(closureOf<com.appdynamics.android.gradle.ADPluginExtension.ProguardConfig> {
this.failBuildOnUploadFailure = true
this.enabled = true
})
}
У меня были некоторые проблемы при использовании плагина adeum с kotlin-dsl, где синхронизация gradle не генерировала расширения для доступа к android, dependencies, implementation и т. д., предоставленные из плагина kotlin-dsl.
Это ваш настоящий лицензионный ключ и имя учетной записи? Наверное, лучше не размещать это в Интернете, если это так