为什么要自动生成版本号?
痛点:每次进行应用升级时,需要更新应用apk的版本号。新的apk版本号要比旧的apk版本号更大,但是手动修改又比较麻烦,要提交,人为可能会出错,可能会忘记。
那么有没有一种好的方式来自动生成版本号(自增,不重复)呢?
答案是有的:使用git的提交次数作为版本号。
在mudule的build.gradle中定义相关内容
defaultConfig {
applicationId "******"
minSdkVersion 26
targetSdkVersion rootProject.ext.targetSdkVersion
//定义获取版本号的方法
versionCode getVersionCode(project)
versionName getVersionName(project)
buildConfigField 'String', 'GIT_COMMIT_ID', "\"${getRevisionDescription(project)}\""
}
// 获取 version code
static def getVersionCode(Project project) {
return getRevisionNumber(project)
}
// 获取修订版本 git 提交次数
static def getRevisionNumber(Project project) {
Process process =( 'git -C '+project.getRootDir()+' rev-list --count HEAD').execute()
process.waitFor()
String text = process.getText();
if (text.equals("")){
return null
}else {
int count = text.toInteger()
System.out.println(count)
return count
}
}
这条git命令可以直接在git仓库的命令行进行验证
每个参数具体含义就不做出解释了,想要了解的,可以看我这篇文章 程序员收藏的宝藏网站 里面有非常完备的git学习网站。
如果对你有帮助,动动你发财的小手,点赞收藏一下吧