My 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环境变量?
答案 0 :(得分:13)
一种选择是使用可以被环境变量覆盖的gradle属性。你可以阅读它here。
如果环境变量名称看起来像 ORG_GRADLE_PROJECT _ prop = somevalue,则Gradle将在项目对象上设置prop属性,其值为somevalue。
这意味着你可以
BUILD_NUMBER=42
文件(项目或全局)中设置.properties
,ORG_GRADLE_PROJECT_BUILD_NUMBER
,覆盖或设置CI版本中的BUILD_NUMBER
。 注意:在项目根目录中使用gradle.properties
,不要修改local.properties
。
答案 1 :(得分:5)
我最终在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环境变量
答案 2 :(得分:3)
这些只是环境变量。
如果在Windows下,请转至操作系统控制面板,然后在右上角的搜索框中键入“环境”。然后单击“编辑您帐户的环境变量”,高度用户友好且无需管理员权限。编辑后重新启动Android Studio。
如果在Linux下,请在您的主文件夹(vi ~/.bashrc
或其他编辑器)中编辑.bashrc。可以在那里设置环境变量。 source ~/.bashrc
(或注销/登录)并在编辑后重新启动Android Studio。