web-dev-qa-db-fra.com

Convertissez un fichier groovy build.gradle existant en un fichier build.gradle.kts basé sur kotlin

mon projet a deux fichiers build.gradle différents écrits avec groovy Syntax. J'aimerais changer ce fichier de notes écrit groovy en un fichier de notes écrit avec la syntaxe Kotlin (build.gradle.kts).

Je vais vous montrer le fichier build.gradle du projet racine.

    // 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
}

J'ai essayé plusieurs "façons" que j'ai trouvées sur Internet, mais rien n'a fonctionné. Renommer le fichier, qui n'est évidemment pas la solution, n'a pas aidé. J'ai créé un nouveau fichier build.gradle.kts dans mon projet racine mais le fichier n'est pas affiché dans mon projet. Gradle n'a pas non plus reconnu le nouveau fichier.

Ma question est donc la suivante: comment transformer mon fichier groovy build.gradle en un fichier kotlin build.gradle.kts et ajouter ce nouveau fichier à mon projet existant?

Merci de votre aide.

18
Exitare

Bien sûr, renommer n'aidera pas. Vous devrez le réécrire à l'aide de Kotlin DSL. Il est similaire à Groovy, mais avec quelques différences. Lisez leurs documents , regardez les exemples .

Dans votre cas, les problèmes sont les suivants:

  1. ext.kotlin_version n'est pas une syntaxe Kotlin valide, utilisez crochets
  2. Tous chaînes de Kotlin utilisez des guillemets doubles
  3. Des accolades sont requises autour des paramètres pour la plupart des appels de fonction (il existe des exceptions, comme fonctions infixes )
  4. API de gestion des tâches légèrement différente. Il existe différents styles disponibles. Vous pouvez déclarer toutes les tâches du bloc tasks sous forme de chaînes , ou utiliser une seule fonction typée, comme dans l'exemple ci-dessous.

Jetez un œil au niveau supérieur converti 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)
}
20
madhead

J'ai renommé build.gradle en build.gradle.kts. Après cela, j'ai commencé à remplacer la syntaxe Groovy par Kotlin.

    buildscript {
    repositories {
        google()
        jcenter()

    }
    dependencies {
        classpath ("com.Android.tools.build:gradle:3.6.2")
        classpath ("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.61")

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()

    }
}

tasks.register("clean", Delete::class) {
    delete(rootProject.buildDir)
}
0
foroogh.Varmazyar