Android-Jenkins+Gradle+Git自动化打包最
JenkinsSample
Jekins+Gradle最佳实践
Jenkins是一款开源的持续集成工具,可用于工程自动化测试和打包。支持Web,iOS,Android,Monkey测试等。
Jenkins官网
本文是Jenkins+Gradle打包apk的最佳示例,鉴于网上的各种教程存在的问题和坑,所以记录一下搭建过程和使用时候存在的坑。
由于gradle的相关配置比较复杂,可定制的内容也比较多,需要有一定经验的构建.
文中用到的gradle相关配置示例
gradle配置
效果图
效果图1.到官网下载Jenkins
Jenkins下载列表
Note:下载列表的最后一个是war包,可以直接部署到tomcat无需安装
本文基于Windows,Jenkins为安装版
2.下载安装后可以在浏览器打开:http://localhost:8080/jenkins
如果在服务器环境下8080端口很可能是被web项目占用,可以通过修改Jenkins安装目录下的jenkins.xml文件,修改httpPort后的端口号
如果使用的是war包部署,端口号就和tomcat一样了
3.打开jenkins后的第一个页面,根据提示到安装目录找到第一次登录的秘钥
4.安装默认插件
5.等待安装结束后进入主界面,配置全局变量,Android SDK的目录
6.配置相关工具目录,如果没有可以选择自动下载,其中gradle版本建议和平时开发环境的版本一致,否则可能会导致编译失败
7.安装必备插件
需要安装的列表(注意搜索的时候大小写和空格):
- Date Parameter Plugin
- build-name-setter
- description setter plugin
- Environment Injector Plugin
8.新建一个构建项目,选择自由风格的项目
9.填写构建参数,这一步非常重要,编写的内容要配合Gradle
填写构建参数,这一步非常重要,编写的内容要配合Gradle
填写构建参数 ,这一步非常重要,编写的内容要配合Gradle
先看一下gradle的输出apk脚本,主要内容就是判断是否由Jenkins构建,如果是那就根据对应参数生成apk到对应目录,否则正常输出到本地apk目录
填写构建参数,注意Choice Parameter,String Parameter,Date Parameter ,如果发现没有Date Parameter请回到第七步安装好插件
9-1配置输出apk的渠道
这里的choices是根据gradle的productFlavors而定,请注意第一个字母要大写,具体请参考示例gradle 示例gradle点击跳转
9-2,配置apk输出名字
这个参数是输出后的apk文件名组成,建议和构建平台一致,注意字母大小写
9-3配置apk的环境,是debug还是release
其中空格是为了需要输出所有渠道apk时候需要的
9-4.配置是否由Jenkins构建,是和否的apk会生成到不同和目录和不同名字,具体配置还是参考示例gradle
9-5.配置App版本号
9-6配置apk输出文件名加上时间
9-7配置构建信息
9-8配置Git信息
9-9配置输出命令
clean assemble'${PRODUCT_FLAVOR_BUILD}''${ENVIRONMENT_TYPE}' 这段动态脚本相当于 clean assembleOfficalRelease
所以应该明白为什么PRODUCT_FLAVOR_BUILD配置的第一个英文要大写了
10.选择好需要构建的参数,选择开始构建,每一次构建都会自动从git拉取最新的代码.第一次构建Jenkins需要下载相应的jar包,耗时会比较久(如果构建失败,请继续阅读接下步骤)
由于由于gradle打包也会引用jdk,所以在打包的时候会消耗比较大的资源,建议将Jenkins配置在服务器,这样在打包的时候就不会影响开发,同时也可以随时随地在其他地方进行打包,不需要依赖发开环境
11.编译成功,根据gradle配置的输出路径找到apk
注意事项:
由于是直接由Gradle进行打包,和AS的generated apk还是有区别的,所以我们还需要进行额外配置才能正常构建,
在windows系统中,由于对文件路径有长度限制,256个字节,如果图片的路径长度超过了这个限制,就会报这个错误
解决办法:在gradle.properties指定cache路径