Jenkins参数化构建,可在打包时,动态配置一些参数,例如:API请求地址,apk版本号(versionCode)、版本名称(versionName),渠道号等
一、Jenkins构建任务,添加参数
如果还没完成Jenkins基础配置,以及普通构建任务,请移步:Jenkins配置android自动化打包(Windows环境下)
1、第一步,编辑构建任务
2、第二步,添加参数化构建配置(替换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上打包生效,否则仅仅是本地修改没用哦。