在mac osx 下使用 Jenkins对Android 进行持续集成
Posted 袁阳的csdn博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在mac osx 下使用 Jenkins对Android 进行持续集成相关的知识,希望对你有一定的参考价值。
在mac osx 下使用 Jenkins对android 进行持续集成
Jenkins环境搭建
java下载
jenkins依赖Java环境,所以在安装jenkins之前先安装JDK或者JRE。java下载地址下载之后,像普通软件一样安装。
环境变量的配置
安装Java以后,需要把java路径配制到系统环境变量。在mac下配置Java环境变量。
下载并安装jenkins
下载安装可以使用在[]Jenkins官网](https://jenkins.io/)下载mac下的安装包,手动安装。这种方式不推荐使用。原因后面讲。
这里使用brew包管理器下载安装 Jenkins。具体做法:
在命令行输入:brew install jenkins
brew会自动下载并且安装jenkins。使用这中方式的缺点是下载速度慢,不能和使用浏览器下载相比。但是它会吧下载,安装,配置一步到位。可以避免很多坑,作为一个从0开始接触jenkins的菜鸟来说,这些坑尽量避免就避免,所以是一种牺牲时间来避免踩坑的做法。
当brew提示已经成功安装Jenkins,就可以在终端中通过输入:
jenkins
来启动jenkins。启动之后,它会自动打开浏览器。这就是Jinkins的控制台。
题外话:
jenkins是怎么做到持续集成的呢?在没有接触jenkins时,我一直很好奇。后来通过各种咨询得出如下结论:
jenkins本质是一个特殊的http服务器,我们使用Git Push一个commit 到远程服务器,Jenkins通过Git钩子得知服务器有新的提交,就会通过配置的Git仓库路径把新提交的代码pull下来,进行编译,打包,上传等操作。
Jenkins的配置
插件的安装
Jenkins只是提供一个可以进行持续集成的环境,所以在进行持续集成的时候,我们还需要安装各种插件。对于Android来说,我们需要配置3个插件:在http://localhost:8080/ 页面通过点击左侧的 系统管理 –> 管理插件进入插件管理页面,选择 可选插件,进入插件选择页面,我们也可以通过右侧搜索该插件,然后安装。
1. Gradle 插件。搜索gradle即可找到该插件。
2. GIT插件 ,通过可以通过搜索得到。
3. Android Emulator插件。方法同上。
在点击安装以后,jenkins会自动对安装进行排队。等待所有的插件安装完毕,在浏览器地址栏输入:http://localhost:8080/restart或者通过下载页面下部的链接重启jenkins。
配置
配置SDK,JDK路径
在开始构建之前,我们需要配置SDK和NDK的路径。通过 系统管理 –>系统设置 –> Environment variables 来编辑环境变量。
创建任务
通过在http://localhost:8080/ 左侧 新建 按钮,进入任务新建页面。
选择 构建一个自由风格的软件项目 。点击 OK 。我们就会进入到这个任务的配置页面。
配置源码管理
这里我们选择Git作为版本控制系统,所以这里我们选择git。当我们填写完仓库地址以及对应的用户信息后,选择保存。
配置构建环境
由于Android使用Gradle作为构建工具。所以在构建环境下面,点击 增加构建步骤按钮,选择Gralde来构建。
下面是对Gradle构建的详细配置:
执行
如果你正确的配置了上述几步,那么已经可以使用jenkins来进行构建了。如果你想继续完善,可以配置构建的时机,比如选择什么时候开始构建;我们还可以配置构建后的任务:比如在执行构建成功以后发送email到推送者或者把报错信息通过emila发送给程序员,方便及时修改。这里,我们使用手动执行来代替自动执行。在http://localhost:8080/job/android/configure 页面通过左侧的 立即构建让jenkins执行构建。我们可以在构建任务中选择查看构建时候的控制台输出,方便我们掌握构建进度。
下面时我项目中的一个构建成功的截图。
踩过的坑
- 通过在jenkins官网下载jenkins安装包然后安装,结果在构建的过程中一直报错:SDK location not exits。其实SDK的位置是有的,可能jenkins对这个目录没有权限。后来使用brew来解决。
- 我们在使用Android Studio开发的时候,会在项目根目录下创建一个local.properties的文件。这个文件跟本地环境有关,记载了开发所在环境中的sdk和ndk的位置。我们通过git提交的时候,是不需要把这个提交到远程服务器的,因为提交没有意义。gradle会读取这个文件下的sdk以及ndk的位置进行构建,在使用 jenkins进行构建的时候,我们只拉取了代码,gradle并不知道sdk和ndk的位置,所以会报:SDK Not Found,这个时候只需要通过提交配置环境变量就可以解决。
如果你在学习过程中,遇到问题,可以给我发邮件(地址:yuan823978@163.com),可以一起解决。
以上是关于在mac osx 下使用 Jenkins对Android 进行持续集成的主要内容,如果未能解决你的问题,请参考以下文章
在Mac OSX 上配置Appium+Android自动化测试环境
如何停止安装在 Mac Snow Leopard 上的 Jenkins?
mac osx10.9环境下使用wireshark代理抓iphone包的问题