读取 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() + '"' }}复制代码
源码
开源模块化解耦框架,欢迎大家点赞Fork,更欢迎点评指导。