处理自定义gradle插件中的每个buildtype / flavor配置

时间:2016-07-25 13:19:47

标签: gradle android-gradle build.gradle

编写自定义Gradle插件时,如何在使用build.gradle中访问每个buildtype / flavor定义的扩展属性?

我有以下扩展类 -

    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属性。它始终设置为" debug-mode"。 任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

apply(Project project){}内 - 自定义Gradle-Plugin的方法(用Groovy编写):

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