简单介绍Jenkins&持续集成
1.定义
持续集成(Continuous integration),简称CI。
随着软件项目复杂度的增加,就会对集成和确保软件组件能够在一起工作提出了更多的要求-要早集成、常集成。
CI不是一项软件开发实践,而是多项软件开发实践的集合。
2.持续继承与敏捷编程
在敏捷领域中,测试驱动TDD和持续集成CI被称为敏捷编程XP的两大基石,于是乎,很多人的概念里就是持续集成是为了实现敏捷编程的。
这是一个错误的认识。实际上,早于敏捷编程概念的提出,持续集成作为一个best practice就已经被很多公司采用了,只不过作为一个概念,
则是由Martin大叔为了推进敏捷所倡导并由此风靡起来。持续集成本身只是一种practice,并不被什么开发模型所限制,在任何一种开发模型中都可以采用,也可以运行得非常理想。
3.为什么要做持续集成
易于定位错误。也就是当你的持续集成失败了,说明你新加的代码或者修改的代码引起了错误。
及早在项目里取得系统级的成果。因为代码已经被集成起来了,所以即使整个系统还不是那么可用,但至少你和你的团队都已经可以看到它已经在那了。
改善对进度的控制。这点非常明显,每天都可以看到哪些功能可以使用,哪些功能还没有实现。。
改善客户关系。理由同上。
更加充分地测试系统中的各个单元。这也是我们常讲的Daily Build与Smoke Test相结合带来的绝大好处。
能在更短的时间里建造整个系统。
有助于项目的开发数据的收集。比如说,项目代码量的变化,经常出错的Tests,经常出错的source code等。
与其它工具结合的持续代码质量改进。如与CheckStyle,FindBugs等等的结合。
与测试工具或者框架结合的持续测试。如与xUnit,SilkTest, LoadRunner等等的结合。
便于Code Review。在每个build里,我们都可以知道与前一个build之间有什么改动,然后针对这些改动,我们就可以实施Code Review了。
便于开发流程的管理。要把一个开发的build提交给测试组作测试,测完满意了,再提交到发布组去发布。
4.持续集成的架构图

5.Jenkins
前置条件:
jdk 注意需要Java 5以及以上的版本
tomcat
Maven
配置环境变量,修改端口等。
Jenkins安装:
下载war
部署到tomcat中
启动tomcat
访问:http://192.168.18.63:8080/jenkins,按步骤填写完成部署。
6.使用
- 项目名称
- 自定义工作目录
- 配置svn地址,用户名,密码
- Build periodically 0 1 * * *
- Poll SCM */5 * * * *
- Invoke top-level Maven targets mvn package
- Execute shell
- 构建后操作:FindBugs,Junit Test,Email等
自动部署执行的shell脚本:
- BUILD_ID=dontkillme 防止job完成后tomcat启动终端,原因未知。
- sh /opt/tomcat/bin/shutdown.sh
- sleep 5
- rm -rf /opt/tomcat/webapps/cmcciw /opt/tomcat/webapps/cmcciw.war
- cp target/cmcciw.war /opt/tomcat/webapps/
- sleep 10
- sh /opt/tomcat/bin/startup.sh
简单介绍Jenkins&持续集成的更多相关文章
- jenkins持续集成工作原理、功能、部署方式等介绍
超详细的jenkins持续集成工作原理.功能.部署方式等介绍 原创 波波说运维 2019-08-29 00:01:00 概述 今天简单整理了一下jenkins的一些概念性内容,归纳如下: 1.概念 j ...
- Docker+Jenkins持续集成环境(4):使用etcd+confd实现容器服务注册与发现
前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇到一个问题,jenkins构建出来的镜像部署后,需要通过ip:port去访问,有什么更好的 ...
- Docker+Jenkins持续集成环境(5): android构建与apk发布
项目组除了常规的java项目,还有不少android项目,如何使用jenkins来实现自动构建呢?本文会介绍安卓项目通过jenkins构建的方法,并设计开发一个类似蒲公英的app托管平台. andro ...
- Jenkins持续集成学习-Windows环境进行.Net开发2
目录 Jenkins持续集成学习-Windows环境进行.Net开发2 目录 前言 目标 使用 .Net Stardard 单元测试 流程 手动执行单元测试 自动执行单元测试 单元测试报告 上传Nug ...
- .NET持续集成与自动化部署之路第一篇——半天搭建你的Jenkins持续集成与自动化部署系统
.NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛 ...
- Jenkins持续集成【简介】
1.1 目前主流网站部署的流程 目前主流网站部署方法,通过Hudson/Jenkins工具平台实现全自动部署+测试,是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台 ...
- Jenkins持续集成企业实战系列之Jenkins持续集成简介及安装-----02
1. Jenkins持续集成简介 注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. 最初接触Jenkins也是由于公司需求, ...
- Windows系统的Jenkins持续集成环境
Windows系统的Jenkins持续集成环境 如题:本文将介绍如何在Windows环境下运用Jenkins部署持续集成环境.之所以写本文,是因为在最近工作当中,学习使用Jenkins时,确实遇到了一 ...
- Docker+Jenkins持续集成
Docker+Jenkins持续集成 使用etcd+confd实现容器服务注册与发现 前面我们已经通过jenkins+docker搭建了基本的持续集成环境,实现了服务的自动构建和部署,但是,我们遇 ...
随机推荐
- 洛谷【P2669】NOIP2015普及组 T1金币
我对模拟的理解:http://www.cnblogs.com/AKMer/p/9064018.html 题目传送门:https://www.luogu.org/problemnew/show/P266 ...
- Ubuntu 16.04 LTS制作本地源
平时apt-get install安装软件时,下载的deb文件都会存放在/var/cache/apt/archives/下,没有网络时就需要将这些deb制作成本地源.另外,如果在本机架一个简单的网络服 ...
- MD5加密 及获得密码盐
MD5加密 及获得密码盐 using System; using System.Collections.Generic; using System.Configuration; using Syste ...
- 差分IO标准
差分标准 和单端IO不同的是,差分电平使用两根信号线来传达信号,这两根信号线在传输过程中如果遇到同样的噪声源(共模噪声)干扰,在接收端,这样的共模噪声会在两个信号相减时消除,这样并不会给接收电平造成影 ...
- Order By操作
本文转载自:http://www.cnblogs.com/vingi/articles/2450482.html 适用场景:对查询出的语句进行排序,比如按时间排序等等. 说明:按指定表达式对集合排序: ...
- 让32位应用程序不再为2G内存限制苦恼
最近在做个程序,虽然是小型程序,但是使用的内存量却很大,动辄达到10G.在64位系统上可以轻松实现,无奈我是基于32位的系统进行开发,程序还没跑起来就已经被终止了. 试过很多办法,包括文件内 ...
- Git命令之创建版本
安装 安装好Git后,将会在桌面生成 这样一个图标 运行后将会是类似控制台程序的黑色窗口,其中mingw64(参考百度百科).这样的话就可以在输入命令 例如 :git 见到下图有详细的用法表示成功否则 ...
- redis学习五 集群配置
redis集群配置 0,整体概述 整体来说就是: 1,安装redis 2,配置多个redis实例 3,安装 ruby和rubygems 4,启动red ...
- nginx注册成服务
http://blog.csdn.net/t37240/article/details/51727563
- eclipse中的TODO和FIXME
最近使用eclipse开发代码时,公司要求按他们制定代码规范编写代码,其他都还好,因为基本都养成良好习惯了,但TODO和FIXME就有点陌生,查了一下资料,发现笔者寡闻了,果然学海无涯,好了,下边解释 ...