一、下载jenkins war包html
从<a href="https://jenkins.io/">Jenkins官方网站</a>下载最新的war包,而后在war的目录下打开cmd,执行命令:java -jar jenkins.war。 看到如下信息,就表示jenkins安装成功了。java
二、启动jenkinsgit
第一次启动Jenkins时,出于安全考虑,Jenkins会自动生成一个随机的口令。注意控制台输出的口令,复制下来,而后在浏览器输入:http://localhost:8080/ 粘贴口令,进入安装界面,若是执行默认的安装,Jenkins就自动配置好了Maven、git等经常使用插件。最后,建立一个admin用户,完成安装。 启动Jenkins的命令:java -jar jenkins.wargithub
三、系统设置->全局工具配置api
JDK配置:浏览器
Gradle配置:安全
Git配置:须要限下载Git安装哦~app
四、建立项目jvm
输入项目名称,选择自由风格类型。下一步就是各类项目配置了(这里先不考虑构建触发器)。工具
这里是从github上拉取数据的,须要github账号:
构建的设置有3项: Task:clean assembleRelease --refresh-dependencies Root Build Script:${workspace}/app
Build File:${workspace}/app/build.gradle
注意,Jenkins默认生成的文件都放在.jenkins目录下。跟项目相关的是存放在workspace中,若是apk要指定输出的路径,须要复制工程的local.properties到.jenkins/workspace/XXX具体工程下。
ok,这样子就能够开始构建项目了。
五、上传apk到蒲公英平台
首先,先下载插件upload to pgyer;而后在构建后添加步骤upload to pyger,填入pgy的userkey和apikey,还有当前apk存放路径和名称,这几个是必填项。
具体的请参考:
https://www.pgyer.com/doc/view/jenkins https://www.pgyer.com/doc/view/jenkins_plugin
六、生成二维码 apk打包好上传到蒲公英,成功会返回成功的信息,其中就有二维码的地址,那么咱们要如何让这个二维码展现在历史记录呢? 首先,须要下载插件“description setter plugin”,能够实现构建完成后设置当次build的描述信息。有了这个前提,咱们能够以html的形式让二维码显示出来,可是Jenkins默认是plain text模式,不会对html解析的。因此咱们须要在全局安全设置(Configure Global Security),将Markup Formatter的设置更改成Safe HTML便可。
<a href="${appBuildURL}"><img src="${appQRCodeURL}" width="118" height="118"/></a>
具体参考: http://blog.csdn.net/u011904605/article/details/54619549
七、配置邮箱通知 由于系统自带的邮件通知配置只能通知到一个邮箱接受者,因此咱们这边用的是插件: Email Extension Plugin。 下载安装完成后,在构建后添加步骤Editable Email Notification:
这样子配置完,你打完包会发现,没有发送邮件给接收者,提示“ No emails were triggered.”。解决办法是点击左边的“系统管理”菜单,选择右边的“系统设置”,找到Extend E-mail Notification进行全局配置。
再不行的话,在具体项目中设置触发器:
遇到的问题
一、第一次构建项目时,编译失败,报错信息为“Error occurred during initialization of VM Could not reserve enough space for 2097152KB object heap”。 解决办法:Android工程目录打开gradle.properties,找到 org.gradle.jvmargs=-Xmx2048m,将org.gradle.jvmargs=-Xmx2048m 改成org.gradle.jvmargs=-Xmx1024m保存。jenkins从新构建Android项目,这时可构建成功。
二、提示“ An attempt to send an e-mail to empty list of recipients, ignored.” 这是Extend Email Plugin的一个bug,解决办法如图:
多渠道打包参考这篇文章: