Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

今日科技快讯

三星日前在美国纽约面向全球召开新品发布会,期盼已久的Note 8于此正式揭开了自己的神秘面纱。该机采用6.3英寸全视曲面屏,保留了S Pen的设计,配备双1200万像素后置相机以及一块略为“保守”的3300mAh锂电池。虽然发布会并没有透露具体配置,但根据相关媒体的消息,该机根据销售地点不同将分别搭载骁龙835以及Exynos 8895两种移动处理器,并将于9月15日正式上市。

作者简介

又到了周一,小伙伴们在开启新的工作同时,也别忘了多多充电!

本篇是 没有功夫的熊猫2 的投稿,分享了如何进行 Jenkins+SVN+Gradle+QQ 的项目自动化构建,希望对大家有所帮助!

没有功夫的熊猫2 的博客地址:

http://my.****.net/YLSHELLO

前言

先看最终效果图:

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

参数构建界面

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

存档界面

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

QQ消息通知界面

jenkins简介

基于 Java 开发的一种持续集成工具,用于监控持续重复的工作。有如下有点:

  • 持续化构建; 

  • 一键触发,自动构建; 

  • 定时触发构建; 

  • 构建结果自动通知(自带邮件通知,可扩展 QQ);

  • 参数化构建,方便动态配置参数;

  • 多任务并发执行,提高构建效率; 

  • 支持自动单元测试; 

  • 支持代码质量检测(插件findbugs)

jenkins安装

jenkins官方下载地址:

https://jenkins.io/download

安装方式可以通过下载war包或者msi安装包,两者的区别如下: 

1. war 包使用简单,下载后复制到 Tomcat 的 webapps>jenkins 目录(如果没有则新建),启动 Tomcat,输入

http://localhost:jenkins 

2. msi 安装成功后,会自动打开进入jenkins,如果失败很有可能是默认端口8080被占用,需要修改端口后重启。修改方法如下: 

打开 jenkins 安装所在目录 /jenkins.xml,找到里面有个属性–httpPort,就是端口号设置。改成其它值后重启。重启方法为:打开 cmd,输入net stop jenkins,再输入 net start jenkins。

本人偏向于安装msi包,因为方便项目目录的管理(war 包创建的项目默认保存在 C 盘)。第一次打开jenkins需要输入随机生成的初始密码,位于 xxx/secrets/initialAdminPassword

插件安装

系统管理>管理插件>可选插件: 

  • build-name-setter—用于设置项目的构建名称 

  • Post-Build Script Plug-in 

该插件的作用是,支持构建成功后,执行shell脚本(用于触发QQ消息通知)。目前官方已经停止该插件的下载,请点击本人分享的百度网盘链接下载:

http://pan.baidu.com/s/1gfIge2Z 

。安装方法如下: 
系统管理>管理插件>高级>上传插件 

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

jenkins配置

系统设置

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

SDK环境变量设置

Config Global Security

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

用户权限设置

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

标记格式设置

Global Tool Config

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

JDK环境变量设置(推荐使用JDK1.8) 

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

Gradle环境变量设置(推荐使用2.14.1版本)

创建项目及详细配置

创建新项目

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

新建>构建一个*风格的软件项目 

项目配置

  • General

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

参数化构建

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

添加参数>Choioce Parameter/String Parameter 

本案例涉及的参数化配置如下: 

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

  • 源码管理

第一次配置需要添加 SVN 账号信息,点击 Add 进行添加

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

  • 构建触发器

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

Poll SCM:根据配置,定时触发(如果代码有更新,会自动进行构建)

  • 构建环境

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

新增Gradle脚本构建项

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

说明:Tasks 内容为 Gradle 执行的命令列表,说明:

-PXXX=${XXX} 参数渗透到项目的 gradle.build 配置里。注:key 必现保持一致,才能正常渗透。

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建项目主module的build.gradle 

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建需要在主module下创建gradle.properties,并声明变量 

执行shell脚本,拷贝 mapping.txt 混淆文件,用于存档(方便定位分析线上 bug)

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

  • 构建后操作

设置 apk 和 mapping 文件存档,方便下载查看 

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

说明: 

  1. 忽略红色提示,前提是明确需要存档的文件存在; 

  2. 用于存档的文件如果有多个,需要使用,号分隔开。

apk/jkt-v${APP_VERSION}-${PRODUCT_FLAVOR}-${ENVIRONMENT_BUILD}-${SVN_REVISION}.apk,mapping/jkt-v${APP_VERSION}-${PRODUCT_FLAVOR}-${ENVIRONMENT_BUILD}-${SVN_REVISION}-mapping.txt

添加构建结果 QQ 消息通知 
如果没有看到如下选项,请确认 Post-Build Script Plug-in 是否安装,安装方法请查看上面的【插件配置】
 

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

这里使用 Mojo-Webqq 完成 QQ 消息发送,下载地址:

http://share-10066126.cos.myqcloud.com/Mojo-StrawberryPerl-20170606.rar

使用教程地址:

https://github.com/sjdy521/Mojo-StrawberryPerl

效果图:

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

构建成功后执行 shell 脚本,使用 curl 模拟发送 post 请求 

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

总结

按照上面的步骤操作,相信可以搭建一个属于你的持续化自动构建平台。Jenkins通过插件,可以丰富使用功能。如,代码质量检测、单元自动测试等。摆脱繁杂重复的构建工作,从Jenkins开始。如有疑问、问题,欢迎留言交流。

更多

每天学习累了,看些搞笑的段子放松一下吧。关注最具娱乐精神的公众号,每天都有好心情。

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建

如果你有好的技术文章想和大家分享,欢迎向我的公众号投稿,投稿具体细节请在公众号主页点击“投稿”菜单查看。

欢迎长按下图 -> 识别图中二维码或者扫一扫关注我的公众号:

Android: Jenkins+SVN+Gradle+QQ Mojo实现项目自动化构建