2016-07-25 103 views
3

編寫定製Gradle插件時,如何訪問在構建消費build.gradle中爲每個構建類型/風格定義的擴展屬性?在定製gradle插件中處理每個構建類型/風格配置

我有以下的擴展類 -

TestExtension { 
    String name; 
    String address; 

    // getters and setters 

    }; 

這gradle這個插件將填充使用閉包特性的消費者,如下圖所示 -

// default 
Test { 
    address = "default address" 
} 
android { 
    buildTypes { 
     release { 
      Test { 
       name = "release-mode" 
      } 
     } 
     } 
     debug { 
      Test { 
       name = "debug-mode" 
      } 
     } 
    } 
} 

在gradle這個插件,我創建並運行一個單獨的每種構建類型的任務。如何在特定任務運行時訪問正確的屬性?例如,運行releasetask時,我從來沒有得到正確的name屬性。它始終設置爲「調試模式」。 任何幫助表示讚賞!

回答

1

您的自定義搖籃 - 插件(Groovy編寫)的apply(Project project){} - 方法裏面:

project.android.applicationVariants.all{ variant -> 
    //do your variant specific code here 
} 
相關問題