使用jenkins进行Android的持续集成
关于持续集成的定义和意义可以参考它的 百度百科
主要意义有以下几点:
减少风险 减少重复过程 任何时间、任何地点生成可部署的软件 增强项目的可见性 建立团队对开发产品的信心
持续集成的实施
持续集成的工具有多个,本人实施的时候采用了Jenkins,它的前身是Hudson。
关于Jenkins的介绍可自行搜索,其主要特点是支持多种插件。
下面说说如何针对Android搭建一个可用的持续集成的系统。
用到的工具:
1.Android 完整的开发环境 :
Android SDK
AndroidStudio 1.0.0稳定版本
Gradle 2.2.1版本
Gradle的插件 1.0.0 版本
jdk 1.7以上
2.服务器需要的工具:
Tomcat 最新版本 ,下载地址:http://tomcat.apache.org
Jenkins 工程war包最新版本即可,下载地址:http://jenkins-ci.org/
建议将Tomcat部署在Linux或者Mac系统上,主要是用命令做一些编译的工作更方便一些,而且一些命令windows上没有。
但是本人没有mac也没有Linux系统的电脑,所以就在windows 上进行了搭建。
3.版本控制服务器
建议使用git,当然svn也是阔以的,我这边使用的是git,两者只是配置不一样。
4.环境变量的配置
jdk环境变量 自行搜索进行配置
Gradle 2.2.1环境变量
Android SDK的环境变量
Tomcat环境变量
配置Tomcat环境变量
1,新建变量名:CATALINA_BASE,变量值:C:\tomcat
2,新建变量名:CATALINA_HOME,变量值:C:\tomcat
3,打开PATH,添加变量值:%CATALINA_HOME%\lib;%CATALINA_HOME%\bin
以上环境准备好后就可以进行下面的工作了
1. 将jenkins.war 丢在tomcat安装目录\webapps\ 下 ,如下图
2.启动Tomcat
在cmd下,执行startup命令,稍等一会Tomcat就会自动部署Jenkins。
如果执行startup,报找不到命令的错误,则是由于Tomcat的环境变量没配置好,需要检查再配置
3.启动Jenkins
启动Tomcat后,会自动部署,在浏览器中输入 http://localhost:8080/jenkins/
如果能正常显示Jenkins的界面就表示成功了,如下图:
4.构建一个自由风格的job
点击新建,创建一个自由风格任务
5.安装Jenkins中的插件
点击系统管理,然后点击插件管理,进入到插件管理界面,找到可选插件
然后安装下面几个插件,名字一定要一样的,不要相似的
目前有这2个插件基本够了,可实现自动从服务器端拉代码,实现自动构建了
6.配置项目,假如第4步中构建的job名称为MyTestApp
点击配置进入到该项目的配置界面
主要配置的有3个地方
1. git的配置 ,由于已经按照了git插件
那么在源码管理下,便会出现git的选项,如下图
Repository URL 在此处填上项目的git地址,最好是https形式的,如果用ssh形式的地址,可能验证起来比较麻烦,需要秘钥
Credentials 地方 添加验证方式 ,一般是username and password 方式,输入自己的用户名和密码。
2. 填写git要拉取的分支
具体看自己的需求来确定分支,有些是develop有些是master或者其他分支。
3. 增加构建步骤
在下面构建的地方,添加一个构建步骤,选择 Invoke Gradle script 类型
填写构建时的一些命令,如下
特别说明一点,Jenkins的操作目录 windows中一般在 C:\Users\Administrator\.jenkins 下,mac环境下,需要在Finder中去找,好像是个隐藏目录
所有的job都在 .jenkins 目录的job目录下可以看到,如下图
但是 Jenkins中某个job的所有命令的执行目录 在 C:\Users\Administrator\.jenkins\jobs\{job名称}\workspace
本例中目录在 C:\Users\Administrator\.jenkins\jobs\MyTestApp\workspace 下,如果是正常的git目录,拉下代码后,workspace下面应该直接
是代码目录,但是我这边的项目下面还一层目录 workspace下面 不是代码,而是一个目录,在这个目录下 执行 gradle build 会报找不到 task,
所以本人 在 switches 中 写成 针对 某个项目的形式 :build -p /MyTestApp
如果是正常的目录,直接写成:build
所有的gradle 都无须 添加 gradle ,自动编译的时候它自己会添上, 完整的 命令是:gradle build -p /MyTestApp 或者 gradle build
这样就完成了简单的配置,保存之后,进行一次构建,就能看到最终的运行效果。
使用jenkins进行Android的持续集成的更多相关文章
- Jenkins构建Android项目持续集成之findbugs的使用
Findbugs简介 关于findbugs的介绍,可以自行百度下,这里贴下百度百科的介绍.findbugs是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题 ...
- Jenkins构建Android项目持续集成之单元测试及代码覆盖率
单元测试 在软件开发中一直在推崇TDD(测试驱动开发),但是一直不能被有效的执行或者并不是真正的测试驱动开发(先开发后写单元测试),因为我们懒!而Android开发又是大多应用层面的开发,很多都是和视 ...
- 漫谈:从APP崩溃率标准,到Monkey介绍拓展Maxim,及Jenkins自动化配置,持续集成获取崩溃monkey日志
漫谈:从APP崩溃率标准,到Monkey介绍拓展Maxim,及Jenkins自动化配置,持续集成获取崩溃日志 1.APP崩溃率标准 开发或测试app的同学,对于app崩溃肯定非常熟悉,频繁的线上崩溃属 ...
- Xamarin.Android VSTS 持续集成
这些天做了一个基于 VSTS 的 Xamarin.Android的持续集成,这里分享下 Build Agent 环境需求 DotNetFramework msbuild visualstudio An ...
- Net 项目构建基于Jenkins + Github + Mono 的持续集成环境
Net 项目构建基于Jenkins + Github + Mono 的持续集成环境 阅读目录 1 安装 2 配置 3 测试 在Redhat enterprise 6.5 的服务器上,为在gutub 上 ...
- Jenkins Jenkins结合GIT Maven持续集成环境配置
Jenkins结合GIT Maven持续集成环境配置 by:授客 QQ:1033553122 安装Git插件 1 安装Git客户端 1 安装JAVA JDK及MAVEN 2 Jenkins JDK ...
- Docker+Jenkins+Maven+SVN搭建持续集成环境
Docker+Jenkins+Maven+SVN搭建持续集成环境 环境拓扑图(实验项目使用PHP环境) 发布流程图 环境说明 系统:Centos 7.4 x64 Docker版本:18.09.0 Ma ...
- Jenkins 搭建 .NET Core 持续集成环境
关于c#的.Net FrameWork 的集成环境以及MsBuild的配置可以看 jenkins搭建.NET FrameWork持续集成环境 这篇文章 关于.NET Core 这个项目 ...
- Jenkins+Gradle实现android开发持续集成、打包
Jenkins简介 Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上.同时 Jenkins 能实施监控集成中存在的错误, ...
随机推荐
- docker实战——在测试中使用Docker
在之前几章中介绍的都是Docker的基础知识,了解什么是镜像,docker基本的启动流程,以及如何去运作一个容器等等. 接下来的几个章节将介绍如何在实际开发和测试过程中使用docker. 将Docke ...
- Mycat探索之旅(5)----常用的分片规则
分片枚举 通过在配置文件中配置可能的枚举id,自己配置分片,本规则适用于特定的场景,比如有些业务需要按照省份或区县来做保存, 而全国省份区县固定的,这类业务使用本条规则,配置如下: <table ...
- wifi破解到局域网渗透
本文转自 _博客 一,密码破解 wifi破解最主要的还是抓握手包破解(不要给我说某某钥匙的“分享”). wifi认证主要分为四步: 1,无线客户端与ap连接时,首先发送一个认证请求包 2,ap收到请求 ...
- jQuery (DOM篇)
1.DOM节点的创建 创建元素节点: 常见的就是直接把这个节点的结构给通过HTML标记字符串描述出来,通过$()函数处理,$("html结构") $("<div&g ...
- Template design pattern application in android
The template method allow separate the generic method from a detail context(class) via inheritance A ...
- Docker的Jenkins Pipeline工作流
原文地址:http://www.youruncloud.com/blog/127.html 分享主题 一个软件产品的开发周期中,尤其是敏捷开发,持续集成和持续部署是必不可少的环节,而随着产品的丰富,模 ...
- linux tomacat 之部署 war包
之前一篇写的是tomcat的linux安装,其中主要是jre 的问题,接下来讲讲 tomcat发布war包 这是一个相对简单的过程 打好war包后,将war包上传到/usr/local/tomcat/ ...
- C++之栈、队列基本用法
1.C++栈的基本用法: #include<stack> (1)push():向栈内压入一个成员: (2)pop():栈顶弹出一个成员: (3)empty():栈为空返回true,否则返回 ...
- poj 2828 Buy Tickets (线段树 单节点 查询位置更新)
Buy Tickets Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 15533 Accepted: 7759 Desc ...
- JavaScript之字符串、对象及操作符
字符串-String 字符串就是字符序列. 字符串中,有些特殊字符,叫做字面量,常见的字面量如下表: 判断字符串长度使用length属性 text.length; 字符串拼接 var a = 'Jav ...