2014-11-05 32 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

相關問題