Android build.gradle 获取Git 仓库数据

读取 Git commit number

def gitGitVersionCode() {
    try {
        return 'git rev-list HEAD --first-parent --count'.execute().text.trim().toInteger()
    }
    catch (ignored) {
        return 1
    }
}

可以作为 app 的Version Code

defaultConfig {
    versionCode rootProject.gitGitVersionCode()
}

读取 Git Tag

def getGitVersionName() {
    try {
        def stdout = new ByteArrayOutputStream()
        exec {
            commandLine 'git', 'describe', '--tags'
            standardOutput = stdout
        }
        return stdout.toString().trim()
    }
    catch (ignored) {
        return "1.0.0"
    }
}

可以作为 app 的 Version Name

defaultConfig {
    versionName rootProject.getGitVersionName()
}

读取 Git 日志

def getGitVersionInfo() {
    return 'git rev-parse --short HEAD'.execute().text.trim()
}

获取 Git 分支名

def getGitBranch() {
    return 'git symbolic-ref --short -q HEAD'.execute().text.trim()
}

可以在BuildConfig生成自定义字段BRANCH,用于代码中区分不同分支。

buildTypes {
    debug {
        buildConfigField 'String', 'BRANCH', '"' + rootProject.getGitBranch() + '"'       
    }
}

源码

在开源模块化框架 RxFluxArchitecture 中,欢迎大家指正点赞。可以提取有用的代码,单独编写!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,833评论 19 139
  • 本片内容转自CSDN http://blog.csdn.net/ithomer/article/details/7...
    五娃儿阅读 10,362评论 2 87
  • 第21天·21天告别拖延 #玩卡不卡·每日一抽#每一位都可以通过这张卡片觉察自己: 1、直觉他叫什么名字?丹 2、...
    独宠我一人阅读 1,355评论 0 0
  • 2015年的清明,如妈妈所愿,一家四口从三个地方聚集在安徽——她的老家。回去的原因很简单,回乡祭祖。祭祖对我来说,...
    淼沁侑子阅读 3,823评论 0 2

友情链接更多精彩内容