在运行我的 gradle 构建之前,如何在 Android Studio 中设置环境变量

新手上路,请多包涵

我的 Gradle 构建查看一个名为 BUILD_NUMBER 的环境变量来确定要分配给我的 android 应用程序的版本,如下所示:

 def buildNumber = System.getenv("BUILD_NUMBER") ?: "local"

因此,只要设置了该环境变量,内部版本号就会在 defaultConfig 中使用,如下所示:

 versionName "1.4.0."+buildNumber

通常,Jenkins 会调用此 Gradle 构建并提供 BUILD_NUMBER 环境变量。

如果我从命令提示符运行 Gradle 构建,我知道我可以设置 BUILD_NUMBER = x。

但是,如果我使用 Android Studio 构建,如何通过 Android Studio 本身设置 BUILD_NUMBER 环境变量?

原文由 dleerob 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 660
2 个回答

我最终在 build.gradle 中使用了以下内容:

 def buildNumber = System.getenv("BUILD_NUMBER")
if (buildNumber == null) {
    Properties properties = new Properties()
    properties.load(project.rootProject.file('local.properties').newDataInputStream())
    buildNumber = properties.getProperty('buildNumber')?:"NoBuildNumberFound"
}

因为 local.properties 文件不应该提交到您的源代码存储库,所以每个开发人员都管理自己的副本。

因此,如果他们想在本地 Android Studio 上设置 buildNumber,只需将以下内容添加到 local.properties:

 buildNumber=7

因此,在本地开发人员机器上,内部版本号将设置为他们放入 local.properties 文件的内容,但在我们的 Jenkins 服务器上,它将使用环境变量 BUILD_NUMBER

我们的 Jenkins 服务器设置了 BUILD_NUMBER 环境变量

原文由 dleerob 发布,翻译遵循 CC BY-SA 3.0 许可协议

一种选择是使用可以被环境变量覆盖的 gradle 属性。你可以 在这里 阅读它。

如果环境变量名称看起来像 ORG_GRADLE_PROJECT _ prop =somevalue,那么 Gradle 将在你的项目对象上设置一个 prop 属性,其值为 somevalue。

这意味着你可以

  1. 在你的 .properties 文件(项目或全局)中设置 BUILD_NUMBER=42 就像你通常做的那样,
  2. 在您的 CI 中,您将命名环境变量 ORG_GRADLE_PROJECT_BUILD_NUMBER ,在您的 CI 构建中覆盖或设置 BUILD_NUMBER

注意: 在你的项目根目录下使用 gradle.properties ,不要修改 local.properties

原文由 David Medenjak 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题