Как получить пользовательский метод внутри блока с Kotlin Gradle DSL? - PullRequest
0 голосов
/ 13 декабря 2018

Я перевожу одно приложение из Gradle Groovy в Kotlin.Это приложение использует Dexguard и для загрузки файла конфигурации используется метод getDefaultDexGuardFile.

release {
  signingConfig signingConfigs.upload
  proguardFiles getDefaultDexGuardFile('dexguard-release-aggressive.pro')
  proguardFiles 'dexguard-rules.pro'
}

Но при переходе на Kotlin я не могу найти способ заставить его распознавать эту опцию:

getByName("release") {
  signingConfig = signingConfigs.getByName("upload")
  proguardFiles(
    "getDefaultDexGuardFile"("dexguard-release-aggressive.pro"), // ?
    getDefaultDexGuardFile("dexguard-release-aggressive.pro"), // ?
    "dexguard-rules.pro",
  )
}

В среде IDE не предлагается импорт, поэтому я не знаю, как это сделать.В банке Dexguard я видел две ссылки на этот метод:

public class C0867Pp extends Closure implements GeneratedClosure

и

public class C0828PC implements GroovyObject

1 Ответ

0 голосов
/ 14 декабря 2018

Немного поиграв с настройками плагина, я нашел это решение:

getByName("release") {
  signingConfig = signingConfigs.getByName("upload")
  proguardFiles(
    extraDexguardMethods.getDefaultDexGuardFile("dexguard-release-aggressive.pro"),
    "dexguard-rules.pro",
  )
}
...