读取 Git commit number
def gitGitVersionCode() {
try {
return 'git rev-list HEAD --first-parent --count'.execute().text.trim().toInteger()
}
catch (ignored) {
return 1
}
}
可以作为 app 的Version Code
defaultConfig {
versionCode rootProject.gitGitVersionCode()
}
读取 Git Tag
def getGitVersionName() {
try {
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'describe', '--tags'
standardOutput = stdout
}
return stdout.toString().trim()
}
catch (ignored) {
return "1.0.0"
}
}
可以作为 app 的 Version Name
defaultConfig {
versionName rootProject.getGitVersionName()
}
读取 Git 日志
def getGitVersionInfo() {
return 'git rev-parse --short HEAD'.execute().text.trim()
}
获取 Git 分支名
def getGitBranch() {
return 'git symbolic-ref --short -q HEAD'.execute().text.trim()
}
可以在BuildConfig
生成自定义字段BRANCH
,用于代码中区分不同分支。
buildTypes {
debug {
buildConfigField 'String', 'BRANCH', '"' + rootProject.getGitBranch() + '"'
}
}
源码
在开源模块化框架 RxFluxArchitecture 中,欢迎大家指正点赞。可以提取有用的代码,单独编写!