ITKeyword,专注技术干货聚合推荐

注册 | 登录

在mac osx 下使用 Jenkins对Android 进行持续集成

yuan514168845 分享于 2016-06-04

推荐:基于Jenkins+git+gradle的android持续集成

本文参考了: http://my.oschina.net/uboluo/blog/157483 http://java.dzone.com/articles/automating-continuous   以前都是通过IDE(eclipse or Android Studio

2019阿里云全部产品优惠券(新购或升级都可以使用,强烈推荐)
领取地址https://promotion.aliyun.com/ntms/yunparter/invite.html

在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进行持续集成(一)-安装篇

进行持续集成最流行的工具是Jenkins和CruiseControl,CC比较老牌,但现在Jenkins更流行,所以选用Jenkins。 Jenkins前身是Hudson,改名的原因仅仅是摆脱Oracle的

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执行构建。我们可以在构建任务中选择查看构建时候的控制台输出,方便我们掌握构建进度。
这里写图片描述
下面时我项目中的一个构建成功的截图。
这里写图片描述

踩过的坑

  1. 通过在jenkins官网下载jenkins安装包然后安装,结果在构建的过程中一直报错:SDK location not exits。其实SDK的位置是有的,可能jenkins对这个目录没有权限。后来使用brew来解决。
  2. 我们在使用Android Studio开发的时候,会在项目根目录下创建一个local.properties的文件。这个文件跟本地环境有关,记载了开发所在环境中的sdk和ndk的位置。我们通过git提交的时候,是不需要把这个提交到远程服务器的,因为提交没有意义。gradle会读取这个文件下的sdk以及ndk的位置进行构建,在使用 jenkins进行构建的时候,我们只拉取了代码,gradle并不知道sdk和ndk的位置,所以会报:SDK Not Found,这个时候只需要通过提交配置环境变量就可以解决。
    如果你在学习过程中,遇到问题,可以给我发邮件(地址:yuan823978@163.com),可以一起解决。

推荐:Gradle + Jenkins + Ubuntu 在Android持续集成中的深坑集合

1.gradle构建失败 2.jenkins找不到android sdk 3.项目代码的总方法数超过65535时,将会出现编译错误 4.job的目录出现在root目录的解决办法(因为用sudo启动,导致

在mac osx 下使用 Jenkins对Android 进行持续集成 Jenkins环境搭建 java下载 jenkins依赖Java环境,所以在安装jenkins之前先安装JDK或者JRE。java下载地址下载之后,像普通软件一样安装。 环境

相关阅读排行


用户评论

游客

相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。