关于持续集成的定义和意义可以参考它的 百度百科

主要意义有以下几点:

减少风险

减少重复过程

任何时间、任何地点生成可部署的软件

增强项目的可见性

建立团队对开发产品的信心

持续集成的实施

持续集成的工具有多个,本人实施的时候采用了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中的插件

点击系统管理,然后点击插件管理,进入到插件管理界面,找到可选插件

然后安装下面几个插件,名字一定要一样的,不要相似的

GIT plugin

Gradle plugin

目前有这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的持续集成的更多相关文章

  1. Jenkins构建Android项目持续集成之findbugs的使用

    Findbugs简介 关于findbugs的介绍,可以自行百度下,这里贴下百度百科的介绍.findbugs是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题 ...

  2. Jenkins构建Android项目持续集成之单元测试及代码覆盖率

    单元测试 在软件开发中一直在推崇TDD(测试驱动开发),但是一直不能被有效的执行或者并不是真正的测试驱动开发(先开发后写单元测试),因为我们懒!而Android开发又是大多应用层面的开发,很多都是和视 ...

  3. 漫谈:从APP崩溃率标准,到Monkey介绍拓展Maxim,及Jenkins自动化配置,持续集成获取崩溃monkey日志

    漫谈:从APP崩溃率标准,到Monkey介绍拓展Maxim,及Jenkins自动化配置,持续集成获取崩溃日志 1.APP崩溃率标准 开发或测试app的同学,对于app崩溃肯定非常熟悉,频繁的线上崩溃属 ...

  4. Xamarin.Android VSTS 持续集成

    这些天做了一个基于 VSTS 的 Xamarin.Android的持续集成,这里分享下 Build Agent 环境需求 DotNetFramework msbuild visualstudio An ...

  5. Net 项目构建基于Jenkins + Github + Mono 的持续集成环境

    Net 项目构建基于Jenkins + Github + Mono 的持续集成环境 阅读目录 1 安装 2 配置 3 测试 在Redhat enterprise 6.5 的服务器上,为在gutub 上 ...

  6. Jenkins Jenkins结合GIT Maven持续集成环境配置

    Jenkins结合GIT Maven持续集成环境配置   by:授客 QQ:1033553122 安装Git插件 1 安装Git客户端 1 安装JAVA JDK及MAVEN 2 Jenkins JDK ...

  7. Docker+Jenkins+Maven+SVN搭建持续集成环境

    Docker+Jenkins+Maven+SVN搭建持续集成环境 环境拓扑图(实验项目使用PHP环境) 发布流程图 环境说明 系统:Centos 7.4 x64 Docker版本:18.09.0 Ma ...

  8. Jenkins 搭建 .NET Core 持续集成环境

    关于c#的.Net FrameWork 的集成环境以及MsBuild的配置可以看     jenkins搭建.NET FrameWork持续集成环境 这篇文章     关于.NET Core 这个项目 ...

  9. Jenkins+Gradle实现android开发持续集成、打包

    Jenkins简介 Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上.同时 Jenkins 能实施监控集成中存在的错误, ...

随机推荐

  1. Wix 安装部署教程 -CustomAction的七种用法

    在WIX中,CustomAction用来在安装过程中执行自定义行为.比如注册.修改文件.触发其他可执行文件等.这一节主要是介绍一下CustomAction的7种用法. 在此之前要了解InstallEx ...

  2. maven 插件之 AutoConfig 工具使用笔记

    AutoConfig 是一款 maven 插件,主要用于 Maven 项目打包使用.在我们的工作中,会将自己写的代码打成 jar 包或者 war 包发布到各种环境上.一般地,不用的环境所使用的数据库. ...

  3. 对AOP切面的一些整理与理解

      首先上一张AOP的图示 一:几个重要的概念   1> 切面:横切关注点(跨越应用程序多个模块的功能)被模块化的特殊对象[验证切面.日志切面]   2> 通知:切面中的每个方法   3& ...

  4. FBX导入错误 :ImportFBX Errors:

    原地址:http://www.cnblogs.com/lopezycj/archive/2012/05/16/unity3d_tuchao.html Unity3D吐槽1--FBX导入 Unity3d ...

  5. n皇后问题[分支限界法]

    问题: 如何能够在 n×n 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行.纵行或斜线上. 分析: 我们可以用一串数字来表示问题 ...

  6. AbstractQueuedSynchronizer源码分析

    AbstractQueuedSynchronizer源码分析 前提 AQS(java.util.concurrent.locks.AbstractQueuedSynchronizer)是并发编程大师D ...

  7. php中的 file_get_contents(‘php://input’)用法

    php中的 file_get_contents('php://input')用法: file_get_contents 获取php页面中input内容的值: eg: php: 页面提交了usernam ...

  8. Flex开发实战(一)--Flex的具体介绍

    背景 因为近期要维护公司的项目,项目里面用到了Flex技术,所以近期一直在恶补.这篇博文就将近期的学习内容,进行一下简单的总结. 不管是做web还是桌面应用.相信大家对于界面的要求已经越来越高.界面趋 ...

  9. android 类似微信的摇一摇实现

    一.在 AndroidManifest.xml 中添加操作权限 <uses-permission android:name="android.permission.VIBRATE&qu ...

  10. js中的 return false;

    总的来说return false 的作用就是阻止事件的默认行为 1. function check() { if(form.title.value=="") { alert(&qu ...