jenkins+gradle 引數配置 Jenkins引數注入多渠道打包
阿新 • • 發佈:2019-02-18
AndroidManifest.xml檔案
<meta-data android:name="CHANNEL" android:value="${CHANNEL_NAME}" />
gradle 定義方法接受Jenkins的上面配置的String引數,Jenkins上的引數以;分隔開(baidu;wandoujia)
輸出多渠道包
def getJenkinsVersion() { def channels = System.getenv("PRODUCT_FLAVOR_BUILD"); // String channels="local;dadad;okok" channels.toString().tokenize(';').each { channelItem -> android.productFlavors.create(channelItem, { // 替換渠道號 manifestPlaceholders = [CHANNEL_NAME: channelItem] }) } }
libraryVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if(outputFile != null && outputFile.name.endsWith('.aar')) { // 顯示app名稱+當前版本號 // def fileName = "Your App Name-V${variant.versionName}" // def fileName ="v"+getJenkinsVersion()+"_"+getJenkinsBuild() //def fileName =getJenkinsBuild() deffileName="v"+getJenkinsBuild() // 如果有渠道,顯示渠道名"" if (variant.flavorName!=""){ fileName = fileName + "-${variant.flavorName}" } // 加入打包時間 fileName = fileName + "-${releaseTime()}" // 如果是debug版本,加入版本號 if ('debug'.equals(variant.buildType.name)) { fileName = fileName + "debug.apk" } else { // 如果是release版本,直接顯示 fileName = fileName + "-release.apk" } output.outputFile = new File(outputFile.parent, fileName) } } } }