Kotlin DSL Android Gradle任务

时间:2018-08-21 06:45:30

标签: kotlin android-gradle build.gradle gradle-kotlin-dsl

我正在将所有Groovy脚本迁移到我们的android项目的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")
}

2 个答案:

答案 0 :(得分:0)

onCreate()

这是解决方案

答案 1 :(得分:0)

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

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