首页 > 解决方案 > 为特定风格修改 build.gradle

问题描述

我正在build.gradle用特定代码修改一个单一风格的代码。具体来说,我正在内部修改这个循环

 project.android.applicationVariants.all { variant ->

将johndoe风味的自定义代码包装在

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

...或者这个解决方案有一些缺点?

标签: gradleandroid-gradle-pluginbuild.gradleandroid-flavors

解决方案


简而言之,是的。当有多个风味维度和构建类型组合时,Android 文档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 构建将知道在构建项目时需要完成一个额外的步骤。


推荐阅读