持续集成(Continuous Integration)

编写代码只是软件开发的一小部分,更多的时间往往花在构建(build)和测试(test)。 为了提高软件开发的效率,构建和测试的自动化工具层出不穷

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作, 旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

目前持续集成(CI)已成为当前许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见做法。 它是一种实践,旨在缓和和稳固软件的构建过程。

Jenkins 作为一款软件开发的神器,能帮团队很优雅地解决编译和发布等工作。 支持超多的第三方系统软件,自定义 Shell 脚本,丰富的插件,可以让你游刃有余地完成很多自动化的工作。

对于Android开发来说,AndroidStudio已经很好使了,配合Gradle神器,给开发工作带来了极大的便利,如果再加上Jenkins,配合各种静态检测工具,代码质量应该会有很大的提升

Jenkins+Gradle+各种插件的标配带来极大的便利,本文将讲述如何在本地用Jenkins+GitHub+Gradle构建Android 如果有条件的可以将Jenkins搭建在服务器上,公司级的如果没有可以不妨试试!

一.下载Jenkins

Jenkins提供了Windows、Linux、OS X等各种安装程序,但是这些安装程序都没有war包好使 访问Jenkins官方网站 https://jenkins.io/ 下载最新的war包 只需要运行命令:

java -jar jenkins.war
复制代码

我把war文件放到D盘下面,并执行命令

出现这行提示:Jenkins is fully up and running 表明成功了

二.访问Jenkins

Jenkins 已经启动并运行,可以从链接访问 Jenkins −http://localhost:8080

最开始会提示安装插件,配置管理员账号等,这里没有截图跳过了 新搭建的和截图显示不一样,因为我已经新建了Job

三.创建Job

点击New 任务会跳转到如下页面
输入item name 这里选择构建自由风格的软件 如果已经创建过Job,再次创建的时候可以选择copy from,重复利用配置参数

四.配置Job

点击configure 配置刚刚创建的Job

配置源码管理:Github仓库地址,账号密码
Build和Build后的操作
如果这里没有Gradle相关的选项,那是因为没有安装Gradle插件 Build Android使用的是Gradle 命令是:

clean
assembleRelease
复制代码

构建后需要的是APK文件,所以这里是把APK文件输出

app/build/outputs/apk/release/*.apk
复制代码

构建后的结果查看:

  • Workspace可以看到我们的代码,是可以点击查看的
  • 构建后的结果APK文件是可以下载的
  • 构建历史可以看到之前的构建,并且可以看到本次的构建信息

如下:是我的构建结果

四.搭建过程中可能遇到问题

第一次搭建难免遇到问题: 具体的可以看报错信息,如截图所示,Console Output

问题1:可能是SDK路径没有配置

这是构建信息里面copy出来的报错信息,给出了明显的提示

<pre class="console-output" style="box-sizing: border-box; white-space: pre-wrap; overflow-wrap: break-word; margin: 0px; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">[Gradle] - Launching build.
[My_github] $ cmd.exe /C "C:\Users\admin\.jenkins\workspace\My_github\gradlew.bat clean assembleRelease && exit %%ERRORLEVEL%%"
Starting a Gradle Daemon, 2 incompatible and 1 stopped Daemons could not be reused, use --status for details

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

* Get more help at [https://help.gradle.org](https://help.gradle.org/)
</pre>

复制代码

解决办法:Android SDK环境变量配置

问题2:jenkins没有安装Gradle插件

选择Available 搜索插件,安装并重启,图片是我已经安装好了的

问题3:Jenkins可选插件访问不了 SSL报错

将https替换成http http://updates.jenkins.io/update-center.json

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐