You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android应用中获取TeamCity的teamcity.build.branch参数

获取TeamCity的teamcity.build.branch作为Android versionName的解决方案

问题根源

TeamCity的teamcity.build.branch属于内部构建参数,默认不会自动暴露给Gradle构建环境,所以直接用常规方法访问不到。

解决步骤

1. 在TeamCity中暴露参数

进入你的构建配置,打开「构建参数」面板:

  • 添加系统属性:名称填teamcity.build.branch,值设为%teamcity.build.branch%(直接引用TeamCity内部变量)
  • 或者开启「允许构建脚本访问TeamCity内部属性」的开关(部分版本在构建特性或参数设置里)

2. Gradle中获取并使用参数

在Module级的build.gradle里这样配置:

def branchName = project.findProperty("teamcity.build.branch") ?: "main" // 分支不存在时用默认值

android {
    defaultConfig {
        versionName branchName
        // 其他默认配置
    }
}

备选方案:通过环境变量传递

如果系统属性方式不生效,换用环境变量:

  • 在TeamCity构建参数中添加环境变量:名称TEAMCITY_BUILD_BRANCH,值%teamcity.build.branch%
  • Gradle中获取:
    def branchName = System.getenv("TEAMCITY_BUILD_BRANCH") ?: "main"
    

验证参数是否能被获取

可以添加一个Gradle任务打印所有可用属性和环境变量,确认参数是否存在:

task checkBranchProp {
    doLast {
        println "=== Project Properties ==="
        project.properties.each { key, value -> println "$key: $value" }
        println "\n=== Environment Variables ==="
        System.getenv().each { key, value -> println "$key: $value" }
    }
}

执行./gradlew checkBranchProp就能查看输出,确认目标参数是否已被正确传递。

内容的提问来源于stack exchange,提问作者Vyacheslav Doroshenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 07:05:03