Преобразование существующей сборки groovy.файл gradle в сборку на основе kotlin.градля.КБС

мой проект имеет две различные сборки.gradle файлы, написанные с groovy синтаксиса. Id хотел бы изменить этот groovy написанный файл gradle в файл gradle, написанный с синтаксисом Kotlin (build.градля.КБС.)

Я покажу вам корневую сборку проекта.файл gradle.

    // Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    //ext.kotlin_version = '1.2-M2'
    ext.kotlin_version = '1.1.51'
    repositories {
        google()
        jcenter()

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0-alpha01'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

    }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

я попробовал несколько "способов", которые я нашел в интернете, но ничего не получилось. Переименование файла, которое, очевидно, не является решением, не помогло. Ive создал новую сборку.градля.файл kts в моем корневом проекте но файл не отображается в моем проекте. Также Gradle в не распознает новый файл.

Итак, мой вопрос: Как я могу преобразовать мой заводной строить.файл gradle в сборку kotlin.градля.kts и добавить этот новый файл в мой существующий проект?

Спасибо за помощь.

1 ответов


конечно, переименование не поможет. Вам нужно будет переписать его с помощью Kotlin DSL. Он похож на Groovy, но с некоторыми отличиями. читать их документы посмотри примеры.

в вашем случае, вопросы:

  1. ext.kotlin_version недопустимый синтаксис Котлина, используйте квадратные скобки
  2. все Котлин строки использовать двойные кавычки
  3. скобки требуются вокруг параметров большинство вызовов функции (есть исключения, например функции infix)
  4. Slighlty различные API управления задачами. Доступны различные стили. Вы можете объявить все задачи tasks заблокировать как строки или используйте одну типизированную функцию, как в приведенном ниже примере.

взгляните на преобразованный верхний уровень build.gradle.kts:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext["kotlin_version"] = "1.1.51"
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath ("com.android.tools.build:gradle:3.1.0-alpha01")
        classpath ("org.jetbrains.kotlin:kotlin-gradle-plugin:${ext["kotlin_version"]}")
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
    }
}

task<Delete>("clean") {
    delete(rootProject.buildDir)
}