修改build.gradle以使其具有特定的风味

时间:2019-10-10 13:41:59

标签: gradle android-gradle-plugin build.gradle android-flavors

我正在用一种风味的特定代码修改build.gradle。具体来说,我正在这个周期内部进行修改

 project.android.applicationVariants.all { variant ->

最佳做法是将 johndoe 风味的自定义代码包装在

if (variant.flavorName.toLowerCase().contains("johndoe")) {

...还是该解决方案有一些缺点?

2 个答案:

答案 0 :(得分:2)

简而言之,是的。 Android Documentation建议在存在多个风味尺寸和构建类型组合时(例如在其示例中为不同的abi设置不同的版本代码)将其用于特定于变体的自定义。它可以很容易地按照您的建议进行操作。

要注意的一件事是“自定义代码”在做什么。定制代码可能正在配置构建,或者想要在构建过程中添加额外的步骤,或者甚至都添加!如果与配置有关,则“自定义代码”应类似于上面的示例。但是,如果要添加额外的处理或构建逻辑,则应以Gradle Task的形式完成,如下所示:

....
applicationVariants.all { variant ->
    if (variant.buildType.name == "release") {
        task("customReleaseLogic") {
            description = "Runs some custom release logic"
            // run some custom release logic 
        }
        variant.assemble.dependsOn("customReleaseLogic")
    }
}
....

这样,Gradle构建将知道在构建项目时还需要执行额外的步骤。

答案 1 :(得分:1)

不是Android开发人员,但是基本上,这是其他大型Gradle项目用来配置特定的subprojects(根据您的情况而定)所做的。例子:

除非您注意到您的构建比上述操作慢,否则您就没事了。

您还可以使用构建扫描来更深入地了解Gradle配置:https://guides.gradle.org/creating-build-scans/