Jenkins配置android自动化打包进阶,参数化构建

Jenkins参数化构建,可在打包时,动态配置一些参数,例如:API请求地址,apk版本号(versionCode)、版本名称(versionName),渠道号等

一、Jenkins构建任务,添加参数

如果还没完成Jenkins基础配置,以及普通构建任务,请移步:Jenkins配置android自动化打包(Windows环境下)

1、第一步,编辑构建任务
编辑构建任务

2、第二步,添加参数化构建配置(替换API请求地址演示)

添加构建参数

添加API配置参数

3、第三步,构建参数添加完毕,保存

保存

二、Android项目,读取Jenkins添加的参数,进行替换

需要在build.gradle里面进行读取Jenkins配置,如果对build.gradle文件使用不太了解,可移步build.gradle文件使用
这里在buildTypes里面,进行jenkins参数读取跟替换的演示

读取Jenkins配置的方法

System.getenv("HOST")//“HOST”常量需要跟jenkins参数化构建时配置的保持一致,否则无法读取

buildTypes代码

buildTypes {
        /**
         *  jenkins配置读取
         */
        //获取API请求host
        def HOST_JENKINS = System.getenv("HOST")
        if (HOST_JENKINS == null || HOST_JENKINS.isEmpty() || !HOST_JENKINS.startsWith("http")) {
            //API地址必须以http打头,否则认为是无效配置
            HOST_JENKINS = null
        }

        //生产环境
        release {

            buildConfigField "String", "API_HOST", HOST_JENKINS ? "\"$HOST_JENKINS\"" : rootProject.ext.APP_PRO_URL

            debuggable false
            minifyEnabled true
            //Zipalign优化
            zipAlignEnabled true
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }

        //开发环境
        debug {

            buildConfigField "String", "API_HOST", HOST_JENKINS ? "\"$HOST_JENKINS\"" : rootProject.ext.APP_DEV_URL

            debuggable true
            //Zipalign优化
            zipAlignEnabled false
            //混淆
            minifyEnabled false
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

三、执行参数化构建任务

android项目修改代码后,必须要把代码提交到git才能在jenkins上打包生效,否则仅仅是本地修改没用哦。


构建项目

动态配置API地址打包

打包完成

推荐阅读更多精彩内容