Jenkins+Gradle实现打包时自定义项
2019-06-11 本文已影响0人
小山豆几
一、自定义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)两个文件

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 打包即可

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