Android 全局公共gradle 根據(jù)渠道配置相關(guān)信息(Build varaint)

【場(chǎng)景說(shuō)明】

當(dāng)我們Android項(xiàng)目里面包含一個(gè)或者多個(gè)module的時(shí)候,這些module需要根據(jù)渠道去配置不同的信息,比如渠道對(duì)應(yīng)的versionCode,versionName,
網(wǎng)絡(luò)請(qǐng)求的baseUrl,測(cè)試賬號(hào)等等。那么我們可以使用一個(gè)公共的gradle去配置這些信息,在編譯打包版本的時(shí)候,無(wú)需手動(dòng)去來(lái)回切換了。

build variants:圖示如下
1.當(dāng)切換到 xxxxDebug時(shí)根據(jù)構(gòu)建體對(duì)應(yīng)不同的測(cè)試賬號(hào)
2.當(dāng)切換到xxxRelease時(shí),則不配置信息

build variants.jpg


【主要代碼】

task handleMpaasConfig() {
    def parameter = gradle.getStartParameter().getTaskRequests().toString()
    println "Build parameter value==" + parameter
    def re = parameter.contains("assemble") ? "assemble(\\w+)(Release|Debug)" : "generate(\\w+)(Release|Debug)"
    Pattern pattern = Pattern.compile(re)
    Matcher matcher = pattern.matcher(parameter)

    if (matcher.find()) {
        def variant = matcher.group(0)
        println "Build Variant value==" + variant
        def start = variant.startsWith("assemble") ? "assemble" : "generate"
        def end = variant.endsWith("Release") ? "Release" : "Debug"
        getTestAccount(variant, start, end)
    }
}

def getTestAccount(String variant, String start, String end) {
    if ("Release".equals(end)) {//如果是正式服,則不配置數(shù)據(jù)
        ext.testAccount = '""'
        ext.channel = '""'
    } else {//根據(jù)不同的構(gòu)建變體名稱,創(chuàng)建測(cè)試賬號(hào)
        if (variant.equals(start + "Demo01" + end)) {
            ext.testAccount = '"demo1-123456"'
            ext.channel = '"DemoChannel01"'
        } else if (variant.equals(start + "Demo02" + end)) {
            ext.testAccount = '"demo2-123456"'
            ext.channel = '"DemoChannel02"'
        } else {
            println "Build 03 value=="
            ext.testAccount = '"demo3-123456"'
            ext.channel = '"DemoChannel03"'
        }
    }
}



【實(shí)現(xiàn)效果】

不同渠道編譯獲取的信息.jpg



【Demo 鏈接】

https://github.com/lizhaoXXX/TestGradle

https://github.com/lizhaoXXX/TestGradle.git



gradle配置版本基礎(chǔ)信息非常好用,不用改來(lái)改去!爽
gradle配置版本基礎(chǔ)信息非常好用,不用改來(lái)改去!爽
gradle配置版本基礎(chǔ)信息非常好用,不用改來(lái)改去!爽

你們不要再學(xué)習(xí)了,我快趕不上了.png

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容