前提:已经在本地配置好Jenkins,未配置的的可以参考Windows+Tomcat(9.0.20)+Jenkins(2.164.3war)安装.需要打包时指定versionName和versionCode的可以参考打包时自定义versionName和versionCode等
目的:通过Jenkins打包输出apk文件
步骤:
一、安装必要插件
二、打包环境配置
三、新增凭据(svn/git账号)
四、创建任务
五、打包
六、踩坑
※START※
一、安装插件
打包Android需要安装 Android Lint Plugin,Gradle Plugin,Subversion Plug-in
登录Jenkins,系统管理->插件管理->可用插件->搜索过滤 Android lint



->其他两个插件在初始化的时候已经安好,可以在 已安装 列表过滤确认。如未安装,自行搜索安装即可

二、打包环境配置
1.新增jdk、gradle
①系统管理->全局工具配置

②新增jdk

(我是在本地电脑上配置的,系统中已经有了jdk的环境变量,这里是否是必须要配?应该是必须配的,系统环境变量是系统提供给tomcat的,Jenkins还是要知道jdk的位置,环境变量中的jdk是给Jenkins用的,这里的配置是告诉构建时的项目该从哪里用)
③新增gradle

④如果是使用git还需要配置git.exe目录,svn跳过此步骤

2.新增ANDROID_HOME
系统管理->系统设置

全局属性->环境变量

三、新增凭据
新增svn或git库的用户账号,从svn/git中checkout/clone时会用到
凭据->系统->全局凭据


四、创建项目任务
->首页点击新建任务

->输入项目名称,“构建自由风格软件项目”,点击确定

->参数化构建,可用于多渠道打包等

->源码管理,需要构建的Android项目源码,根据实际情况选择svn或git,这里就会用到第三步中的凭据

->构建,配置构建信息,这里的BUILD_TYPE就算是上一步参数化构建中的名称

->这里的构建对应gradle中任务名,可以在AndroidStadio中查看

->点击 [构建]右下角的 [高级]配置gradle文件位置

->构建后操作,构建成功后可以把指定文件放到Jenkins输出目录或发邮件,这里配置的就是我们需要的apk目录,在第一次构建前输入可能会报路径不错在,可以等第一次构建成功后再配置该项


五、打包
找到自己新建的项目,点击 build with Parameters,点击开始构建

等待构建完成,

->归档成品的文件在JENKINS_HOME目录的workspace下

六、踩坑
1.没有配置gradle脚本位置(第四步中的构建),提示构建成功但是归档成文件失败,查看是否build成功可以查看workspace下项目目录中有没有build完成的apk文件
2.构建没有配置task(第四步中的构建),没有配置task则没有具体的执行任务,也会失败
3.ANDROID_HOME配置(第二步中的新增ANDROID_HOME),这里就是Android编译时用到的sdk
参考文章
1.Android 自动化构建之Jenkins配置
https://blog.csdn.net/qq_16131393/article/details/83381128
2.Jenkins中配置gradle项目的坑
https://blog.csdn.net/itfootball/article/details/45023805
3.Jenkins Android自动构建配置(SVN)
https://my.oschina.net/tonylaw/blog/2252918
网友评论