使用带有Gradle的git describe自动版本化Android构建

我进行了广泛的搜索,但可能是由于Android Studio和Gradle的新功能.我还没有找到如何做到这一点的任何描述.我想基本上完成this post中描述的内容,但使用Android Studio,Gradle和Windows而不是Eclipse和Linux.

解决方法:

实现最近获得牵引力的结果的更合适和精益的方式是使用gradle git integration通过Groovy JGit bindings.因为它使用JGit它甚至不需要安装git来工作.

这是一个显示类似(但在gitVersionName字符串中有一些附加信息)解决方案的基本示例:

buildscript {
  dependencies {
    classpath 'org.ajoberstar:grgit:1.4.+'
  }
}
ext {
  git = org.ajoberstar.grgit.Grgit.open()
  gitVersionCode = git.tag.list().size()
  gitVersionName = "${git.describe()}"
}
android {
  defaultConfig {
    versionCode gitVersionCode
    versionName gitVersionName
  }
}
[...]

正如您在Grgit API documentation中所见,describe operation提供了除历史记录中可访问的最新标记之外的其他信息:

Find the most recent tag that is reachable from HEAD. If the tag points to the commit, then only the tag is shown. Otherwise, it suffixes the tag name with the number of additional commits on top of the tagged object and the abbreviated object name of the most recent commit.

无论如何,它不会告诉状态是否脏.通过查看仓库的clean status可以轻松添加此信息,如果不清洁则附加字符串.

相关文章

安装环境都很简单,就是下载工具需要在华为开发者联盟里注册...
上传的方式有两种,第一种是通过bintray官方出的插件bintray...
转载自: 完美解决Error:SSLpeershutdownincorrectly打开gr...
https://www.jianshu.com/p/9220227cdfb3buildscript{ext.ko...
Markdown版本笔记我的GitHub首页我的博客我的微信我的邮箱My...
 跟着教程做的,已经有了JDK,直接进行后面的步骤,下载安装...