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

如何在Bitbucket Pipeline中读取Android应用版本名称

解决Bitbucket Pipeline获取Android版本名称的问题

你遇到的核心问题是:Gradle脚本内的变量不会自动暴露给Bitbucket Pipeline的Shell环境,所以直接引用$my_lib_version无法生效;而手动维护仓库变量又过于繁琐。以下是几种无需手动更新的可行方案:

方案1:通过Gradle任务输出版本号

在项目级build.gradle中添加一个专门用于输出版本号的任务:

task printLibVersion {
    doLast {
        println project.my_lib_version
    }
}

然后在Bitbucket Pipeline脚本中执行该任务并捕获输出:

script:
  # 静默执行Gradle任务并捕获版本号
  - LIB_VERSION=$(./gradlew -q printLibVersion)
  - echo "当前版本:$LIB_VERSION"

方案2:直接读取Gradle属性

无需修改build.gradle,直接通过Gradle的properties命令提取变量:

script:
  - LIB_VERSION=$(./gradlew -q properties | grep "my_lib_version" | awk '{print $2}')
  - echo "当前版本:$LIB_VERSION"

方案3:用Shell命令解析build.gradle文件

如果不想执行Gradle命令,也可以直接通过文本解析工具提取版本号:

script:
  - LIB_VERSION=$(grep 'project.ext.set("my_lib_version"' build.gradle | awk -F '"' '{print $4}')
  - echo "当前版本:$LIB_VERSION"

说明

之前直接引用$my_lib_version失效的原因是:project.ext定义的变量仅存在于Gradle运行时上下文,不会自动注入到Pipeline的Shell环境中,必须通过主动提取的方式获取。

内容的提问来源于stack exchange,提问作者Anchit Mittal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 01:57:10