首页 > 解决方案 > 是否可以通过 ./gradlew 命令传递构建配置参数?

问题描述

我知道可以根据构建类型提供不同的参数buildConfigField,例如:

// app.gradle

buildConfigField "boolean", "ADS_ENABLED", false
buildConfigField "String", "URL", "https://host.de"

然后我就可以像这样访问源代码中的这些字段BuildConfig.ADS_ENABLED:但我需要的不是在 gradle 文件中硬编码这些值,而是在构建时通过gradlew命令提供它们。

像这样的东西(这显然行不通):

./gradlew assembleQa -ADS_ENABLED=true, -URL="https://anotherhost.de"

然后能够从源代码访问这些字段。

其用例是自动化,特别是在 CI 管道上有不同的作业,可以使用不同的参数组合构建 apk,而无需为每个组合创建新的构建类型。

欢迎提出其他建议。

标签: androidgradlegitlabgitlab-ci

解决方案


您可以通过读取代码中的环境变量并将其设置在 gitlab ci 中来解决此问题,如下所示 在此处输入图像描述

您可以在此处找到接管示例的整个 gitlab 配置:https ://gitlab.com/viae-modules/viae-modules/-/blob/master/.gitlab-ci.yml


推荐阅读