在Gradle中定义为每种构建类型运行的任务

时间:2014-11-05 16:16:03

标签: android gradle android-studio android-gradle build.gradle

我是Gradle&使用Gradle在Android Studio中实现构建脚本。我已经定义了构建类型如下:

android {

 buildTypes {
        release {
            ...
        }

        other {
            ...
        }

        debug {
            ...
        }

  }
}
...

我需要创建一个需要为每个构建类型运行的任务,并且需要知道它正在运行的构建类型:

task myTask(dependsOn: 'build'){
   //1. I need to be run for each build Type
   //2. I need to know which build type I am now running for
   buildType = XXX
}

如何在gradle中实现myTask?

2 个答案:

答案 0 :(得分:0)

有一个构建支持可以访问每个构建Variant。例如,要为每个变体创建一个checkstyle任务,请执行以下操作:

android{
    applicationVariants.all{ variant ->
       def checkstyleTask = task("${variant.name}Checkstyle", type:Checkstyle){
           ...
       }
       check.dependsOn checkstyleTask
    }
}    

答案 1 :(得分:0)

您可以为每种类型的构建设置 buildConfigField 值(即releaseotherdebug)。然后在您的任务中,您可以检查此字段值以查看应采取的操作。请看这里的例子:

https://azevedorafaela.wordpress.com/2015/09/17/environmental-variables-buildconfig-gradle-properties-and-android-studio/comment-page-1/#comment-821