在Android组装期间自动标记git和gradle

在Android组装期间自动标记git和gradle,android,git,gradle,versioning,Android,Git,Gradle,Versioning,我看到很多人在构建过程中使用git标签读取版本,然后进行组装,但是我想做相反的事情 我已经在build.gradle中动态创建了我的版本名和代码,我想在每次进行汇编(更改版本名)时用版本名加上当前变量名(因此我需要它独立于变量)标记当前git提交。我无法从我正在构建的变体中读取当前版本名,因此,类似于: task gitTag(type: Exec) { exec { currentVersionName = android.variant.name co

我看到很多人在构建过程中使用git标签读取版本,然后进行组装,但是我想做相反的事情

我已经在build.gradle中动态创建了我的版本名和代码,我想在每次进行汇编(更改版本名)时用版本名加上当前变量名(因此我需要它独立于变量)标记当前git提交。我无法从我正在构建的变体中读取当前版本名,因此,类似于:

task gitTag(type: Exec) {
    exec {
        currentVersionName = android.variant.name
        commandLine 'git tag -a ' + currentVersionName
    }
}

tasks.whenTaskAdded { task ->
    if (task.name == 'assemble') {
        task.dependsOn = gitTag
    }
}

除此之外,由于似乎没有人这样做,这是一种糟糕的方法吗?

我不太理解这个问题。您是否需要最新的标签才能(通过编程)知道最新的版本?如果是,您可以使用修改后的
GIT-VERSION-GEN
方法和
GIT description--match“v[0-9]*”--abbrev=0 HEAD
(假设您使用
vX.Y.Z
标记来命名发布的版本)。不,每次运行“assembleerelease”或“assembleebeta”时,我都需要执行“GIT-tag”,并在变量评估后使用正确的标记名