从最后一个git标记设置versionCode

时间:2015-02-05 18:21:03

标签: android git gradle

我试图让Gradle从Git中获取最后一个标记并将其用作versionName。我定义了这个简单的任务:

def gitTag() {
    def cmd = "git describe --abbrev=0 --tags"
    def proc = cmd.execute()
    return  proc.text.trim()      
}

然后像这样使用它:

defaultConfig {
    // (...)  
    versionName gitTag() ?: "NO_VERSION"
}

问题是,这只能在从命令行构建时按预期工作。当我尝试从Android Studio运行应用程序时,我总是得到" NO_VERSION"。

编辑:经过一些测试后似乎失败了,因为运行Android Studio时的工作目录是~/.AndroidStudio/system/compile-server,因此上面的命令失败,因为该目录不是git存储库。

EDIT2:在玩了一些之后,似乎只有一些命令失败了。如果我用git --versiongit status替换命令,我得到预期的输出,但是如果我使用类似git rev-list HEAD --count的东西,则stdout和stderr都是空的。使用git rev-list HEAD也可以。 WAT

那么如何使用Gradle项目目录作为工作目录执行git命令?

0 个答案:

没有答案