Jenkins+Gradle实现打包时自定义项

一、自定义versionName和versionCode等
目标:打包时输入versionName和versionCode并成功输出apk文件
前提:可以正常打包apk文件,未配置好的可以参考本地Jenkins+SVN/Git打包Android输出apk文件
目标效果如下:

效果图

原理:build.gradle(app)文件中的参数使用gradle.properties文件中定义的字段,Jenkins打包时替换gradle.properties中的值
1.在gradle.properties文件中新增打包的字段,这里的值会在打包时被Jenkins替换掉。VERSION_CODE为 -1 是为了判断使用用户设置的还是使用默认的。
新增打包时的字段

2.修改build.gradle(app)文件中的参数使用gradle.properties新增字段,如需自定义api、包名等都类似的修改gradle.properties和build.gradle(app)两个文件
修改gradle文件

def createVersionCode() {
    int version_code = Integer.parseInt(project.VERSION_CODE)
    if (version_code < 1) {
        return 200000 + getSvnRevision()
    } else {
        return version_code
    }
}
// getSvnRevision()是通过插件获取的svn号
def getSvnRevision() {
    ISVNOptions options = SVNWCUtil.createDefaultOptions(true)
    SVNClientManager clientManager = SVNClientManager.newInstance(options)
    SVNStatusClient statusClient = clientManager.getStatusClient()
    SVNStatus status = statusClient.doStatus(projectDir, false)
    SVNRevision revision = status.getCommittedRevision()
    return revision.getNumber()
}

到此项目中的配置已经完成,接下来配置Jenkins
3.登录Jenkins配置
到需要的项目中点击配置

配置

->在General中的“参数化构建”添加“字符参数”
添加字符参数

参数名和值

->配置好后点击保存即可
4.打包
点击Build with Parameters 打包即可
打包

打包成功后就可以看到结果了
打包结果


参考文章
1.使用Jenkins进行Android自动打包,自定义版本号等信息【转】

你可能感兴趣的:(Jenkins+Gradle实现打包时自定义项)