Linux上快速搭建Jenkins服务器 实现持续集成开发
http://my.oschina.net/long0419/blog/183299
持续集成概述
什么是持续集成
随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。
持续集成正是针对这一类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。
持续集成的核心价值在于:
- 持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量;
- 持续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能;
- 持续集成还能利于软件本身的发展趋势,这点在需求不明确或是频繁性变更的情景中尤其重要,持续集成的质量能帮助团队进行有效决策,同时建立团队对开发产品的信心。
持续集成的原则
业界普遍认同的持续集成的原则包括:
1)需要版本控制软件保障团队成员提交的代码不会导致集成失败。常用的版本控制软件有 IBM Rational ClearCase、CVS、Subversion 等;
2)开发人员必须及时向版本控制库中提交代码,也必须经常性地从版本控制库中更新代码到本地;
3)需要有专门的集成服务器来执行集成构建。根据项目的具体实际,集成构建可以被软件的修改来直接触发,也可以定时启动,如每半个小时构建一次;
4)必须保证构建的成功。如果构建失败,修复构建过程中的错误是优先级最高的工作。一旦修复,需要手动启动一次构建。
持续集成系统的组成
由此可见,一个完整的构建系统必须包括:
- 一个自动构建过程,包括自动编译、分发、部署和测试等。
- 一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建过程的素材库。
- 一个持续集成服务器。本文中介绍的 Jenkins 就是一个配置简单和使用方便的持续集成服务器。
Jenkins 简介
Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时 Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。下面将介绍 Jenkins 的基本功能。
Jenkins 的安装非常简单,只需要从 Jenkins 的主页上下载最新的 jenkins.war 部署到对应的应用服务器的webapp目录中(如tomcat中的webapp) ,启动应用服务器 , 在地址栏中输入 http://ip地址 : 服务器端口号/jenkins 。 就可以进入Jenkins了。
图一:Jenkins 主界面
非常有趣的是,Jenkins 还提供了非常丰富的插件支持,这使得 Jenkins 变得越来越强大。我们可以方便的安装各种第三方插件,从而方便快捷的集成第三方的应用。比如 Jenkins 提供了对于 IBM Rational ClearCase 的插件支持。
图 4. Jenkins 可以集成 ClearCase 插件
图 5. Jenkins 提供了丰富的管理功能
基于 Jenkins 快速搭建持续集成环境
正如前文中所描述的那样,一个持续集成环境需要包括三个方面要素:代码存储库、构建过程和持续集成服务器。对 Jenkins 有了初步了解后,我们通过一个实例来集中展示如何快速搭建一个简单的基于 Jenkins 的持续集成环境。
假设我们使用的代码存储库是 IBM Rational ClearCase。Jenkins 提供了对 ClearCase 的插件支持,它能方便地让我们连接到 Base ClearCase 或者 UCM ClearCase,使其成为 Jenkins Project 的代码控制器。另外,这个插件是基于 cleartool 命令的,所以必须在 Jenkins 的持续集成服务器上安装 ClearCase 的客户端程序。
在 Jenkins 的插件管理界面中选择 ClearCase Plugin,点击页面下方的 Install 按钮。
图 6. 选择 ClearCase 插件
图 7. ClearCase 插件安装成功
接下来,我们开始新建一个 Jenkins 项目, 由于我们需要连接 SVN 的代码存储器, 我们选择 Build a free-style software project。
图 8. 新建 JenkinsTest Job
然后我们就可以很方便的配置这个 JenkinsTest 项目了。Jenkins 很人性化的一点是在每个配置项的右侧都有一个帮助的图标,点击这个图标,Jenkins 会告诉您如何配置这个配置项。
图 9. 配置 JenkinsTest
根据实际的 SVN 服务器服务器信息配置 Source Code Management,这能让 Jenkins 知道如何从哪里获取最新的代码。本例中假设 Repository 就在本地。
图 10. 配置连接到 SVN 服务器
根据开发需要,假设每一个小时我们需要重新构建一次。选择 Build periodically,在 Schedule 中填写 0 * * * *。
最后一个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。
所以 0 * * * * 表示的就是每个小时的第 0 分钟执行一次构建。
图 11. 选择如何触发构建
接下来就是要添加 build 的步骤了。Jenkins 提供了四个选项供我们选择,可以根据需要执行或调用外部命令和脚本。
图 12. 四种 build step 供选择
图 13. 配置 Execute Windows batch command
选择和配置其他的选项,比如邮件提醒,然后点击 save 保存。
图 14. 配置邮件提醒
图 15. JenkinsTest 开始构建
图 16. JenkinsTest 构建的 console 输出
最后,我们可以看到 build 的最后结果 Success,表明本次构建成功。
图 17. 构建成功的 Console 输出
图 18. 新建 Distribute job
不同的是,这次我们选择调用 Ant 脚本来完成分发的工作。只需要将 Ant 脚本的 XML 的文件配置在 Targets 中供 Jenkins 调用。
图 19. Distribute 调用外部 Ant 脚本
图 20. 查看持续集成状态
============================================
1.Linux SSH服务器不存在证书,连接svn时会出现 svn: E175002 错误
- configure: error: in `/root/subversion-1.7.5':
- 如报错则执行(安装一个C编译器)
- yum install gcc
- configure: error: We require OpenSSL; try --with-openssl
- yum install openssl
- yum install openssl-devel
不用使用svn checkout将所有代码下载下来 ,本人直接使用
svn log (svn://.......) 这时服务器会从svn服务器上获取当前证书。
2.Jenkins远程发布war包 :
首先需要在jenkins上面安装Deploy war to/ear to container 插件
然后需要在Tomcat(或者其他应用服务器中设置管理员权限) ,这里在tomcat-user.xml中设置manager-script 权限 然后再Jenkins上填写对应用户及其服务器地址:
说明:tomcat 服务器webapp中ROOT、 host-manager 原有文件夹一定不能删除
结束语
本文简单介绍了持续集成的概念并着重介绍了如何基于 Jenkins 快速构建持续集成环境。通过具体实例的描述,相信读者对 Jenkins 的基本功能和实现方法有个更清楚地认识和理解。其实,Jenkins 的功能远不至文中所述的这些,Jenkins 还有详尽的日志处理和持续集成构建状态的分析等功能。希望在进一步的学习和应用中与大家分享。
Linux上快速搭建Jenkins服务器 实现持续集成开发相关推荐
- 通过Python在Windows或Linux上快速搭建HTTP服务器
在Windows 7/10或Ubuntu上可以通过python2.x或python3.x来快速搭建一个简单的HTTP服务器. 如果python为2.x,则可执行:$ python -m SimpleH ...
- linux下测试个人主页,一键建站集成软件包,Linux上快速搭建测试个人网站
原标题:一键建站集成软件包,Linux上快速搭建测试个人网站 来自:Linux迷 https://www.linuxmi.com/ubuntu-20-0-linux-xampp.html 在Ubunt ...
- linux的建站安装包,一键建站集成软件包,Linux上快速搭建测试个人网站
原标题:一键建站集成软件包,Linux上快速搭建测试个人网站 来自:Linux迷 https://www.linuxmi.com/ubuntu-20-0-linux-xampp.html 在Ubunt ...
- linux怎样搭建DNS服务器,Linux下快速搭建DNS服务器
摘要 腾兴网为您分享:Linux下快速搭建DNS服务器,作业盒子,优学堂,湘税社保,悟空识字等软件知识,以及初中英语app,新榜编辑器,神界原罪2,少儿英语点读app,minecraft皮肤编辑器, ...
- linux开发 stc_在Linux上快速搭建8051开发环境
在Linux上快速搭建8051开发环境(2018-7-2) 0. 写在开始之前 实验操作系统环境: Ubuntu 16.04 编译器: sdcc SDCC - Small Device C Compi ...
- Linux(Centos)快速搭建SVN服务器
2019独角兽企业重金招聘Python工程师标准>>> 一.SVN简介 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统 ...
- linux 开放svn端口号,Linux(Centos)快速搭建SVN服务器
一.SVN简介 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Su ...
- 在 CentOS 7 上搭建 Jenkins + Maven + Git 持续集成环境
本文以部署 Spring boot + Maven 项目为例,使用码云作为代码托管仓库,在 CentOS 7 上搭建 Jenkins 持续集成环境. 1. 准备工作 1.1 安装 Java 环境 Je ...
- 【Jenkins+RF】从零搭建Jenkins+Robot Framework持续集成环境
转自:https://www.jianshu.com/p/ef8d3109ac5f 感恩 安装Jenkins 系统环境:CentOS Linux release 7.3.1611 x86_64 ...
最新文章
- android中menu菜单扩增_【已解决】Android添加Menu菜单
- Centos-Server-Nginx服务(编译安装)
- java实现创建窗口
- Java初学者笔记五:泛型处理
- plsql日期转换错ORA-01830
- 轻松搞定C语言中复杂的声明
- sql盲注 解决_SQL 盲注漏洞
- 重温《海龟交易法》:要尊重市场的规律
- C++后端开发(校招实习生)学习路线
- linux去掉文件夹背景色
- 小孔成像总结_初中物理解题技巧+方法总结,非常实用,初二初三都要看!
- 其实运营,就是用户的贪、嗔、痴
- 更新map中已存在的value值
- TIS-100攻略 Segment 1~3 解法与DEBUG彩蛋
- Juniper设备设置syslog传送
- 回看腾讯这些年(文末有感)
- windows平台的视频播放软件-potplayer
- VS、ReSharper 设置修改代码颜色、提高代码辨识度!附VS超实用快捷!
- 这款苹果笔记本最适合编程!!包邮送!
- 软件内每日提醒功能,可整合到工程中
热门文章
- [Python图像处理] 十二.图像几何变换之图像仿射变换、图像透视变换和图像校正
- LeetCode Algorithm 1. 两数之和
- Jenkins 权限配置与集群配置
- 第十届 蓝桥杯样题 ——结果填空
- PTA —— 基础编程题目集 —— 编程题 —— 7-3 逆序的三位数 (10 分)
- 征战蓝桥 —— 2013年第四届 —— C/C++A组第6题——逆波兰表达式
- 【Qt】Qt Creator中布局器详解
- 【Linux系统编程】IO标准缓冲区
- 【Linux】一步一步学Linux——ethtool命令(155)
- 优优加速cdn带宽_为什么使用CDN你的网速还是那么慢?