【问题标题】:Modifying build.gradle for a particular flavor为特定风格修改 build.gradle
【发布时间】:2019-10-10 13:41:59
【问题描述】:

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

 project.android.applicationVariants.all { variant ->

johndoe 风格的自定义代码包装在

中是一种最佳实践
if (variant.flavorName.toLowerCase().contains("johndoe")) {

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

【问题讨论】:

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


    【解决方案1】:

    简而言之,是的。 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 构建将知道在构建项目时需要完成一个额外的步骤。

    【讨论】:

      【解决方案2】:

      不是 Android 开发人员,但这基本上是其他大型 Gradle 项目为配置特定 subprojects(在您的情况下为变体)所做的工作。例子:

      除非您注意到您的构建比执行上述操作要慢,否则您没问题。

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

      【讨论】:

      • 不知道是不是一模一样,不过我会查的!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-13
      • 1970-01-01
      • 2013-12-13
      • 1970-01-01
      • 1970-01-01
      • 2019-05-04
      • 1970-01-01
      相关资源
      最近更新 更多