使用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中的插件
点击系统管理,然后点击插件管理,进入到插件管理界面,找到可选插件
然后安装下面几个插件,名字一定要一样的,不要相似的
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
这样就完成了简单的配置,保存之后,进行一次构建,就能看到最终的运行效果。
转载于:https://www.cnblogs.com/hsx514/p/5141612.html
使用jenkins进行Android的持续集成相关推荐
- Jenkins与Docker的持续集成实践
本文讲的是Jenkins与Docker的持续集成实践[编者的话]持续集成(CI/CD)是一种软件开发实践.用于帮助团队成员频繁.快速的集成,测试他们的工作成果,以尽快发现集成错误. 更频繁.更早的集成 ...
- Jmeter+Jenkins+Ant 接口自动化持续集成框架
前言: 首先简单说下jmeter+jenkins+ant接口自动化持续集成框架的工作原理,以便于更好的理解后面的各项配置: 首先,jenkins通过SVN获取jmeter最新的脚本: 然后,jenki ...
- Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记 - passover【毕成功的博客】 - 51CTO技术博客...
Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记 - passover[毕成功的博客] - 51CTO技术博客
- SpringBoot+Docker+Git+Jenkins实现简易的持续集成和持续部署
前言 本篇文章引导你使用Jenkins部署[SpringBoot项目],同时使用Docker和Git实现简单的持续集成和持续部署.(项目地址:sso-merryyou) 流程图如下: push代码到G ...
- 基于Docker容器的,Jenkins、GitLab构建持续集成CI
** 开发者将代码提交(push)到GitLab后,GitLab通过Hook通知jenkins,jenkins自动从GitLab中获取项目最新的源码进行集成和发布. 基于Docker,创建一个私有Gi ...
- jenkins 忘记密码_持续集成工具Jenkins 在CentOS系统下安装
一.Jenkins简介 Jenkins是一个开源的持续集成工具,用于持续.自动的构建.测试.发布项目.Jenkins使用Java开发,可与版本管理工具集成使用. Jenkins支持UI操作来部署流水线 ...
- Docker + Jenkins 快速打造 PHP 持续集成服务器
假如你想快速搭建一个 PHP CI/CD 服务器,那么 Docker 可以作为一个很好的选择.本文从实践的角度给出一个快速搭建 Docker + Jenkins 的 PHP 持续集成服务器的方案.如果 ...
- jenkins jboss_与JBoss Fuse,Jenkins和Nexus的持续集成
jenkins jboss 最近,我正在整理一个快速启动的Maven项目,以展示组织JBoss Fuse项目的可能方法. 该项目可以在Github上找到: https : //github.com/p ...
- 与JBoss Fuse,Jenkins和Nexus的持续集成
最近,我正在整理一个快速启动的Maven项目,以展示一种组织JBoss Fuse项目的可行方法. 该项目可在Github上找到: https : //github.com/paoloantinori/ ...
最新文章
- bert [unused*] 特殊符号
- 4dda在linux中的意思,Evvail | MaxQuant-蛋白质组DDA数据分析金标准 | Omics - Hunter
- Web端即时通讯技术盘点:短轮询、Comet、Websocket、SSE
- 分享让人折服的优秀代码基因
- php 访问 sharepoint列表,SharePoint—用REST方式访问列表
- 使用EndNote X9引用参考文献并在Word中修改生成的引文格式(编号、字体大小)GBT7714(numeric)
- springmvc5.3 之后版本 舍弃AntPath地址匹配模式通配符 “**”用法改变。
- bzoj 5302: [Haoi2018]奇怪的背包
- Dubbo的负载均衡、集群容错、服务降级等机制详解
- java动态数组的实现的_Java实现数据结构之【动态数组】
- 解决微信调整字体大小导致Html5页面混乱
- final可以修饰哪些java名词_Java关键知识点 - Java final关键字到底修饰了什么?
- python enumerate() 函数的使用方法
- conan入门(十九):封装第三方开源库cpp_redis示例
- Behavior Designer 中文版教程
- 别人都在谈降维攻击和下沉市场,而我却偏偏就要讲升维
- 软件开发行业,年轻与大龄程序员的生存现状究竟如何?
- C++ 将二叉树以前序遍历的顺序转换成链表
- Windows 查看端口是否已打开
- Android-PickerView
热门文章
- [原]简述Field,Attribute,Property的区别
- Mr.J-- HTTP学习笔记(六)-- 代理
- VC++动态链接库编程(转载)
- tomcat8+idea远程调试
- 微擎框架小程序 入口
- Python 爬虫-BeautifulSoup
- 日常((⊙_⊙)…)
- 深度学习 Deep Learning UFLDL 最新Tutorial 学习笔记 4:Debugging: Gradient Checking
- CheckStyle使用手册(一)
- 红帽Linux故障定位技术详解与实例(3)