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

如何从分支名称提取编号以构建Android Alpha版本

从分支名中提取编号并用于Gradle构建的方法

嘿,别担心,这个问题一点都不基础——很多刚接触脚本和构建流程的同学都会遇到类似的需求!我来一步步帮你搞定。

核心思路

你的分支命名是固定格式fix/NN-1234,我们需要先拿到当前分支名称,再通过字符串处理提取出最后的数字部分(1234),最后把这个数字传入Gradle命令。

方法1:用Shell参数扩展(简单直观)

这种方法不需要额外工具,纯Shell就能完成:

# 第一步:获取当前分支的名称
BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD)

# 第二步:先去掉分支名开头的"fix/"部分
BRANCH_NO_PREFIX=${BRANCH_NAME#fix/}

# 第三步:去掉剩下部分里的"NN-"前缀,得到最终编号
BUILD_NUMBER=${BRANCH_NO_PREFIX#*-}

# 第四步:执行Gradle构建命令
./gradlew assembleAlphaRelease -Pbuild=$BUILD_NUMBER

方法2:用Sed一键提取(更简洁)

如果想少写几行,可以用sed命令直接对分支名做正则替换:

# 直接提取编号并赋值给变量
BUILD_NUMBER=$(git rev-parse --abbrev-ref HEAD | sed 's/^fix\/.*-//')

# 执行构建
./gradlew assembleAlphaRelease -Pbuild=$BUILD_NUMBER

解释一下这个正则^fix\/.*-:

  • ^fix\/:匹配分支名开头的fix/
  • .*-:匹配从fix/之后到最后一个-的所有内容
  • 整个替换命令会把这些匹配到的内容删掉,剩下的就是你要的数字编号。

方法3:用Awk分割字符串

如果分支名的分隔符很明确(这里是-),也可以用awk按分隔符拆分:

BUILD_NUMBER=$(git rev-parse --abbrev-ref HEAD | awk -F '-' '{print $2}')
./gradlew assembleAlphaRelease -Pbuild=$BUILD_NUMBER

-F '-'表示用-作为分隔符,{print $2}就是取分割后的第二部分,也就是1234。

进阶:写成脚本一键执行

如果每次都要敲这么多命令太麻烦,可以把这些逻辑写成一个Shell脚本:

  1. 创建一个名为build_alpha.sh的文件,内容如下:
#!/bin/bash

# 获取当前分支名
BRANCH=$(git rev-parse --abbrev-ref HEAD)

# 提取编号(这里用Sed的方法,你也可以换成上面其他方法)
BUILD_NUM=$(echo $BRANCH | sed 's/^fix\/.*-//')

# 执行Gradle构建
echo "开始构建Alpha版本,Build编号:$BUILD_NUM"
./gradlew assembleAlphaRelease -Pbuild=$BUILD_NUM
  1. 给脚本添加执行权限:
chmod +x build_alpha.sh
  1. 之后每次构建只需要运行:
./build_alpha.sh

注意事项

  • 这些方法都基于你的分支名是fix/NN-1234的固定格式,如果分支名有变化(比如多了额外的-或者前缀不同),需要调整正则或分割规则。
  • 确保你当前处于目标分支上,git rev-parse --abbrev-ref HEAD会获取当前所在的分支名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 01:09:06