我需要编写gradle脚本以在每次提交时自动对应用程序进行版本控制。我还需要在测试人员的应用程序中包含提交哈希作为引用。
我对自动版本控制通常如何工作感到困惑。有人可以解释自动版本化过程吗?
最佳答案
我遇到了类似的问题,但不想修改versionName以包括git哈希。我们希望将其保持为1.2.2,但是仍然可以在UI中显示git hash。
我修改了the other answer here中的代码,以使用buildConfigField任务生成可在Java代码中引用的BuildConfig.GitHash值。
将其添加到模块的build.gradle文件的android
部分上方:
def getGitHash = { ->
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'rev-parse', '--short', 'HEAD'
standardOutput = stdout
}
return stdout.toString().trim()
}
然后将以下行添加到build.gradle的
defaultConfig
部分的android
部分,即versionName
下面:buildConfigField "String", "GitHash", "\"${getGitHash()}\""
这将在自动生成的BuildConfig.java文件中生成以下行:
// Fields from default config.
public static final String GitHash = "e61af97";
现在,您可以使用
BuildConfig.GitHash
在Java代码中获取git哈希。