如何从分支名称提取编号以构建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脚本:
- 创建一个名为
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
- 给脚本添加执行权限:
chmod +x build_alpha.sh
- 之后每次构建只需要运行:
./build_alpha.sh
注意事项
- 这些方法都基于你的分支名是
fix/NN-1234的固定格式,如果分支名有变化(比如多了额外的-或者前缀不同),需要调整正则或分割规则。 - 确保你当前处于目标分支上,
git rev-parse --abbrev-ref HEAD会获取当前所在的分支名。
内容的提问来源于stack exchange,提问作者Polina_A
相关产品推荐
相关产品推荐

