首页 > 解决方案 > Kotlin DSL Android Gradle 任务

问题描述

我正在为我们的 android 项目将所有 Groovy 脚本迁移到 Kotlin DSL。我们的构建风格如下所示:

   buildTypes {
    getByName("debug") {
        isDebuggable = true
        signingConfig = signingConfigs.getByName("default")
    }

    create("qa") {
        isShrinkResources = true
        isMinifyEnabled = true
        isUseProguard = true
        proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
    }

    getByName("release") {
        isShrinkResources = true
        isMinifyEnabled = true
        isUseProguard = true
        proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
    }
}

因此,如果我想从命令行运行 taks

./gradleW aDebug
./gradleW aQa
./gradleW aRelease

现在,当前的问题是,当我尝试将所有任务组合到下面的一个中时,代码在 Groovy 中的样子,但不确定如何在 Kotlin DSL 中编写。感谢你的帮助

//This is in Groovy        
task assembleAll(dependsOn:
            [
                    'assembleQa',
                    'assembleRelease',
            ])

你能告诉我它在 Kotlin DSL 中的样子吗?我已经尝试了以下方法,但到目前为止还没有工作。

task("assembleAll") {
    dependsOn("assembleQa")
    dependsOn("assembleRelease")
}

标签: kotlinandroid-gradle-pluginbuild.gradlegradle-kotlin-dsl

解决方案


如果您要将脚本从 Gradle Groovy 转换为 Kotlin DSL:

tasks.register("assembleAll") {
    dependsOn("assembleQa", "assembleRelease")
}

推荐阅读