如何在Gradle脚本中获取Git提交日期并组合提交哈希为版本名
修改Gradle代码生成包含Git提交哈希和日期的VersionName
新增获取Git提交日期的方法,将提交哈希与日期拼接成目标格式,完整修改后的Gradle代码如下:
def getCommitHash = { -> def stdout = new ByteArrayOutputStream() exec { commandLine 'git', 'rev-parse', '--short', 'HEAD' standardOutput = stdout } return stdout.toString().trim() } def getCommitDate = { -> def stdout = new ByteArrayOutputStream() exec { // 自定义日期格式,去除月/日的前导零 commandLine 'git', 'show', '-s', '--format=%cd', '--date=format:'%-m-%-d-%Y'', 'HEAD' standardOutput = stdout } return stdout.toString().trim() } def getVersionInfo = { -> return "Version: ${getCommitHash()}, Date: ${getCommitDate()}" } android { defaultConfig { versionName getVersionInfo() } }
核心细节:
- 提交日期的Git命令:
git show -s --format=%cd --date=format:'%-m-%-d-%Y' HEAD-s:仅输出提交摘要,避免多余内容%cd:指定输出提交日期字段--date=format:'%-m-%-d-%Y':定义日期格式,%-m和%-d会去掉月份、日期的前导零(例如显示7而非07),%Y为四位年份
- 两个工具方法通过
exec执行Git命令,捕获标准输出并去除首尾空白,保证结果整洁 - 最终通过
getVersionInfo拼接成目标字符串,直接赋值给versionName即可
内容的提问来源于stack exchange,提问作者mohammed_sajid
相关产品推荐
相关产品推荐

