使用Hudson进行持续集成
小Alan最近接了一个任务,就是使用Hudson进行持续集成,持续集成是怎么个概念,3言2语也说不清,有兴趣的童鞋去找我二奶度娘问问就知道了,说到Hudson就不得不提一下jenkins,目前来说用jenkins的应该要比Hudson多吧,毕竟jenkins的更新频率还是要比Hudson快,两者其实是五十步笑百步,会玩Hudson,jenkins也难不到哪去,所以jenkins暂时就不多介绍了。
在介绍Hudson之前给大家推荐一本书,这本书是来自许晓斌老师的《Maven实战》,本篇文章会借鉴该书的内容,小Alan也把这本书看完了,这是一本非常值得购买的书,作为一名程序猿可以买下来收藏。
接下来,让我们一起进入Hudson的世界:
第一步:安装Hudson
Hudson下载地址:http://hudson-ci.org/,下载完成后就能获得一个hudson.war文件,如图:
注意事项:Hudson必须运行在JRE1.5或更高的版本上。
最简单的启动方式是在命令行直接运行hudson.war(这里不演示这种方式,有兴趣的童鞋去找我二奶度娘问问就知道怎么玩了)。
Hudson.war顾名思义,既然是一个war文件,自然可以被部署到各种Web容器中,如Tomcat、Glassfish、Jetty及Jboss等。
这里以Tomcat7为例,只需要把Hudson.war扔到Tomcat的部署目录webapps下,然后去bin目录,运行startup.bat,如图:
待tomcat启动完成后,打开浏览器访问http://localhost:8080/hudson就能看到hudson的界面了。
首次运行Hudson会进入如下一个界面,要你选择你所需要安装的插件,选择好需要安装的插件后点击install或者finish,如图:
以后再次访问Hudson都会直接进入Hudson的首页,如图:
第二步:准备使用Hudson进行持续集成所需要的环境
①准备JDK运行环境:JDK环境还要我教你怎么搭建的话,你后面可以不用看下去了,作为一名猿,我是绝对不希望看见你这样的猿的,交配还得看基因好不好呢,好了不开玩笑了。
②准备Subversion仓库:在正式创建Hudson持续集成任务之前,需要准备好版本控制系统。常见的版本控制工具有CVS、Subversion、Git、Mercurial等。Subversion可能是当前使用范围最广的版本控制工具吧?反正我不知道大家喜欢用什么,但是我还是比较喜欢用Subversion,通俗点说就是SVN。SVN的安装我就不多扯了,我二奶度娘肯定知道的,没事多找我二奶谈谈人生,聊聊理想。
③准备项目管理框架:这里我会使用Maven,个人在工作的过程中觉得Maven真的是非常不错的,没用过的猿或者用过的猿都建议深入学习一下,Maven的安装也是so简单,别告诉我你不会,不会找一下我二奶度娘。
第三步:Hudson的基本系统设置
在创建Hudson持续集成任务之前,需要对Hudson系统做一些基本的配置,包括JDK安装位置和Maven安装位置,Hudson会使用这些配置好的JDK和Maven进行持续集成任务。也可以使用Ant或者Shell来持续集成项目,一样的要配置好安装位置。
点击Hudson首页左边的“系统管理”,然后单击页面右侧的“系统设置”以进入系统设置界面,如图:
在系统设置页面,首先要配置的是Hudson将使用的JDK。在页面中找到对应的部分,然后单击Add JDK按钮,Hudson就会提示用户进行安装。Hudson默认会提示自动安装JDK,可以看到Install automatically的复选框是被选上的,但是不建议自动安装,一般作为一个开发人员,本机上都是有JDK的,没必要花时间去等待Hudson再次下载JDK。手动输入本机JDK的位置(往往就是JAVA_HOME环境变量的值)。
可以配置多个JDK,需要项目支持多个不同版本JDK的时候非常有用,这里不多介绍。
Maven的配置与JDK类似,不再多说,如图:
最后,别忘了单击页面下方的Save按钮保存系统设置,如图:
第四步:创建Hudson任务
单击页面左边的新建任务,然后在页面右边选择任务的名称及类型。对于一般的maven项目来说,可选择的类型有Build a free-style software project和Build a maven2 project。前者不仅支持maven项目,还支持其它类型的构建工具,如Ant、Shell。这里我们选择第一种,这种方式更可控制,当任务出现问题的时候也更容易检查,如图:
输入任务名称,并选择free-style类型后,单击OK按钮即可进入详细的任务配置页面,如图:
第五步:Hudson任务的基本配置
首先是项目的名称和描述,接着是一个重要的选项Discard Old Builds。该选项配置如何抛弃旧的构建。Hudson每执行一次构建任务,就可以保存相应的源代码、构建输出、构建报告等文件。很显然,如果每次构建相关的文件都保存下来,将会渐渐耗光磁盘空间。为此,Hudson提供两种方式让用户选择保留哪些构建任务相关的文件,它们分别为:
□Days to keep builds:如果其值为非空的N,就仅保留N天之内的构建文件。
□Max # of builds to keep:如果#非空,就仅保留最多#个最近构建的相关文件。
如图,表示最多保留10个最近的构建,如图:
第六步:Hudson任务的源码仓库位置
接着需要配置项目的源码控制系统。在项目配置页面的Source Code Management部分,选择Subversion单选按钮,然后在Repository URL文本框中输入项目的Subversion仓库地址。一般来说,该部分的其他选项保留默认值即可(如果在界面没有看见这些东西,则说明Hudson Subversion Plug-in插件没有安装),如图:
需要注意的是,如果访问Subversion仓库需要认证,Hudson会自动探测并提示用户输入认证信息。因为我用的是局域网上的SVN,所以不需要认证,这里没有切实的图片给大家演示,如图:
单击enter credential后,Hudson会弹出一个页面让我们选择认证方式并输入认证信息。输入正确信息之后,Hudson就能读取仓库源代码了,如图采用用户名和密码的方式进行认证:
第六步:Hudson任务的构建触发配置
Build Triggers部分配置的是触发构建的方式。可选的三种方式分别为:
□Build after other project are built:在其他项目构建完成之后构建本项目。
□Build periodically:周期性地构建本项目。
□Poll SCM:周期性地轮询源码仓库,发现有更新的时候构建本项目。
我们选择第三种方式,也是最常用的构建方式,既然是轮询,就需要配置轮询的频率,Hudson使用了著名的UNIX任务调度工具Cron所使用 的配置方式。大家自己找我二奶度娘了解一下。如图:
我配置的是每隔15分钟轮询一次。
第七步:Hudson任务的构建配置
接下来要配置Hudson使用运行Maven命令构建项目。单击Build部分中的Add build step下三角按钮,然后选择Invoke Maven 3(如果没有看见这个,说明没有安装Hudson maven3 Plugin),如图:
这里就会默认使用我们在系统配置中配置的maven构建项目,指定好要运行的命令,如图:
需要注意的是,日常持续集成任务如果成功的话,都会生成快照版的项目构建。如果维护了一个私服,那么持续集成任务就应当自动将构建部署到私服中,供其他项目使用。单击最下方的Save按钮保存配置。这时,可以单击页面左边的“立即构建”来手动触发第一次集成。如图:
这样,一个简单的持续集成任务就配置成功了。
可爱博主:AlanLee
博客地址:http://www.cnblogs.com/AlanLee
本文出自博客园,欢迎大家加入博客园。
使用Hudson进行持续集成的更多相关文章
- Hudson(Jenkins)持续集成插件开发环境搭建
Hudson持续集成插件开发环境搭建 第一步安装java jdk,至于版本的话推荐1.6以上吧.安装好jdk设置环境变量,确保你在cmd中输入java -version有提示你jdk的版本信息等,也就 ...
- Android+git+hudson+gradle持续集成
linux 主机 android sdk安装忽略 jdk安装忽略 hudson安装忽略 gradle安装 1:下载相应的gradle(这里是gradle-2.10-all.zip) 2 : 解 ...
- Jenkins在Windows系统dotnet平台持续集成
之前写过一篇文章是在CentOS上构建.net自动化编译环境, 今天这篇是针对于Windows平台的环境. Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平 ...
- HUDSON(Java开发的一种持续集成工具)
Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. Hudson的特性 1.易于 ...
- Hudson可扩展持续集成引擎
参考文章:http://blog.csdn.net/dazhi_100/article/details/11629133 极限编程中一项建议实践便是持续集成,持续集成是指在开发阶段,对项目进行持续性自 ...
- 利用Hudson持续集成来执行Android自动化测试(转)
当你套用Athrun.Robotium等框架,针对自己的项目写完了一堆自动化测试脚本后,在Eclipse之外怎么让它们可以持续性地跑起来并展现报告呢? 据我了解,方便的方法大致有两个:其一,利用Hud ...
- Hudson+Maven+Svn搭建持续集成环境
Hudson+Maven+Svn搭建持续集成环境 博客分类: 配置管理 mavenSVNTomcat项目管理配置管理 一.所用开发工具 1. Hudson: Hudson 是一种革命性的开放源码 ...
- 持续集成环境(Hudson)搭建
持续集成环境(Hudson)搭建 这是在公司写的,公司要求用英文,我也没时间翻译了.还请见谅! Hudson是个非常强大持续集成工具,配合svn,maven,sonar,redmine工具就更加完美了 ...
- 持续集成篇 --Hudson持续集成服务器的安装配置与使用
样例项目参考视频教程:http://www.roncoo.com/course/view/85d6008fe77c4199b0cdd2885eaeee53 IP:192.168.4.221 8G内存 ...
随机推荐
- iOS--碎片知识锦集
知识锦集day01 1.UIView的两个方法: sizeThatFits和 sizeToFit 官方文档上说: - (CGSize)sizeThatFits:(CGSize)size; // ...
- es6 新特性2
es6其他几个非常有用的新特性. import export 这两个家伙对应的就是es6自己的module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成 ...
- Enterprise Solution 进销存管理软件 C/S架构,支持64位系统 物流,资金流,信息流全面集成
定位 Target Customers 中小型生产制造企业,批发零售类,贸易企业 主要模块 Modules 采购.销售.库存.财务账款四大模块,包含企业运作过程中销售.采购.库存各岗位需 ...
- 锋利的jQuery--jQuery事件,动画(读书笔记二)
1.注意$(document).ready()方法和window.onload方法之间的细微区别 $(document).ready()在DOM树构建完成就会执行,而window.onload是在DO ...
- Python下载网页的几种方法
get和post方式总结 get方式:以URL字串本身传递数据参数,在服务器端可以从'QUERY_STRING'这个变量中直接读取,效率较高,但缺乏安全性,也无法来处理复杂的数据(只能是字符串,比如在 ...
- iOS开发之浅谈MVVM的架构设计与团队协作
今天写这篇博客是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇博客的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦 ...
- 【项目记录】-液化气配送app android版
15年底参与过甲方呼叫中心平台开发.液化气配送app android版要求1个月开发完成.开发此项目以前我只有过一周android的开发经验.(与甲方签署过保密协议,遵循职业道德有些敏感信息不能写.) ...
- YYModel 源码解读(二)之NSObject+YYModel.h (4)
接下来我们继续向下看 typedef struct { void *modelMeta; ///< _YYModelMeta void *model; ///< id (self) voi ...
- HTML5 学习总结(三)——本地存储
一.HTML4客户端存储 B/S架构的应用大量的信息存储在服务器端,客户端通过请求响应的方式从服务器获得数据,这样集中存储也会给服务器带来相应的压力,有些数据可以直接存储在客户端,传统的Web技术中会 ...
- spring boot(六):如何优雅的使用mybatis
*:first-child{margin-top: 0 !important}.markdown-body>*:last-child{margin-bottom: 0 !important}.m ...