Как получить пользовательский метод внутри блока с Kotlin Gradle DSL?

Я перевожу одно приложение из Gradle Groovy в Котлин. Это приложение использует 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 ответ

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

getByName("release") {
  signingConfig = signingConfigs.getByName("upload")
  proguardFiles(
    extraDexguardMethods.getDefaultDexGuardFile("dexguard-release-aggressive.pro"),
    "dexguard-rules.pro",
  )
}
Другие вопросы по тегам