【问题标题】:Is it possible to pass Build Config parameters via ./gradlew command?是否可以通过 ./gradlew 命令传递构建配置参数?
【发布时间】:2020-06-04 10:16:02
【问题描述】:

我知道可以通过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,而无需为每个组合创建新的构建类型。

欢迎提出其他建议。

【问题讨论】:

  • 可以使用环境变量。
  • 我认为you can use -P or -D 可以传入任意值(例如./gradlew assembleQa -PADS_ENABLED=true, -PURL="https://anotherhost.de")。然后,您将更改您的 buildConfigField 以引用那些(例如,buildConfigField "boolean", "ADS_ENABLED", System.getProperty("ADS_ENABLED"))。

标签: android gradle gitlab gitlab-ci


【解决方案1】:

您可以通过读取代码中的环境变量并像这样在 gitlab ci 中设置它来解决这个问题

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-17
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    • 2021-12-13
    相关资源
    最近更新 更多