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

dle*_*rob 22 android gradle android-studio android-gradle-plugin

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

def buildNumber = System.getenv("BUILD_NUMBER") ?: "local"
Run Code Online (Sandbox Code Playgroud)

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

versionName "1.4.0."+buildNumber
Run Code Online (Sandbox Code Playgroud)

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

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

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

Dav*_*jak 14

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

如果环境变量名称看起来像ORG_GRADLE_PROJECT _ prop = somevalue,则Gradle将在项目对象上设置prop属性,其值为somevalue.

这意味着你可以

  1. 像往常一样BUILD_NUMBER=42在您的.properties文件(项目或全局)中设置,
  2. 在CI中,您可以在CI构建中命名环境变量ORG_GRADLE_PROJECT_BUILD_NUMBER,覆盖或设置BUILD_NUMBER.

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


dle*_*rob 7

我最终在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"
}
Run Code Online (Sandbox Code Playgroud)

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

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

buildNumber=7
Run Code Online (Sandbox Code Playgroud)

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

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


h22*_*h22 5

这些只是环境变量。

如果是Windows,请转到OS控制面板,然后在右上角的搜索框中键入“环境”。然后单击“为您的帐户编辑环境变量”,高度用户友好并且不需要管理员权限。编辑后重新启动Android Studio。

如果在Linux下,请在主文件夹中(vi ~/.bashrc或使用其他一些编辑器)编辑.bashrc 。可以在此处设置环境变量。source ~/.bashrc(或注销/登录)并在编辑后重新启动Android Studio。

  • 这是正确的并且有效。我不明白您要在这份下降票中说什么。 (2认同)
  • 我想我希望从 android 项目本身加载 var(例如在 gradlew 文件中),这样与您一起工作的人就拥有环境变量,并且您的系统不会被它污染。 (2认同)