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 中,歡迎大家指正點贊。可以提取有用的代碼,單獨編寫!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • 本片內容轉自CSDN http://blog.csdn.net/ithomer/article/details/7...
    五娃兒閱讀 4,953評論 2 88
  • 第21天·21天告別拖延 #玩卡不卡·每日一抽#每一位都可以通過這張卡片覺察自己: 1、直覺他叫什么名字?丹 2、...
    獨寵我一人閱讀 170評論 0 0
  • 2015年的清明,如媽媽所愿,一家四口從三個地方聚集在安徽——她的老家。回去的原因很簡單,回鄉祭祖。祭祖對我來說,...
    淼沁侑子閱讀 619評論 0 2