2014-11-05 55 views
2

我是Gradle的新成员&在Android Studio中使用Gradle实现构建脚本。我已经定义了构建类型如下:定义为Gradle中的每个构建类型运行的任务

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?

+0

任务不能运行多次。相反,您需要为每个构建类型声明一个单独的任务。 – 2014-11-05 16:21:15

+0

不清楚你需要做什么,但正如Peter所暗示的,你可以动态地定义一个“myTask $ buildType”任务(在http://www.gradle.org/docs/current/userguide/tutorial_using_tasks中检查“动态任务”的.html)。 – 2014-11-05 16:26:29

+0

另外,'dependsOn'仅仅意味着任务'build'将在'myTask'之前执行。一旦执行'myTask','build'就已经完成。除非您以某种方式修改Android构建过程,否则您将无法拦截当前正在运行的'buildType' afaik。 – 2014-11-05 16:29:37

回答

0

有一个buildin支持访问每个buildVariant。例如创造每一个变种CheckStyle的任务,你这样做:

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

**建立类型**的这一点在哪里运行? – 2016-07-27 13:42:35

相关问题