使用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内存 ...
随机推荐
- Thread.Sleep(0) vs Sleep(1) vs Yeild
本文将要提到的线程及其相关内容,均是指 Windows 操作系统中的线程,不涉及其它操作系统. 文章索引 核心概念 Thread.Yeild Thread.Sleep(0) Thread. ...
- substring的用法
public String substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串.该子字符串从指定的 beginIndex 处开 ...
- salesforce 零基础学习(五十七)Test 类中创建TestUser帮助类
我们写Test Class的时候往往都需要指定一个uesr去run test method. TestUserHelper类如下: public class TestUserHelper { publ ...
- javascript中的浮点数运算
解释一下下面代码的输出 console.log(0.1 + 0.2); //0.30000000000000004 console.log(0.1 + 0.2 == 0.3); //false Jav ...
- 【.NET深呼吸】Zip文件操作(2):动态生成Zip文档
通过前面一篇烂文的介绍,大伙儿知道,ZipArchive类表示一个zip文档实例,除了用上一篇文章中所列的方法来读写zip文件外,还可以直接通过ZipArchive类,动态生成zip文件. 文件流操作 ...
- Python标准模块--argparse
1 模块简介 你一定很奇怪Python是如何命令行中的变量的吧?argparse就是用来解决这个问题的,argparse是optparse的替代. 2 模块使用 2.1 开始 我发现解释一个编程的概念 ...
- ASP.NET 5 WebApi 返回 HttpResponseMessage
首先,ASP.NET 5 没有了 MVC 和 WebApi 的区分,都属于 ASP.NET 5,从 Controller 的继承就可以看出,原来 ASP.NET WebApi 2 ValuesCont ...
- JVM学习(1)——通过实例总结Java虚拟机的运行机制
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下: JVM的历史 JVM的运行流程简介 JVM的组成(基于 Java 7) JVM调优参数:-Xmx和-Xms ...
- 解决新版Android studio导入微信支付和支付宝官方Demo的问题
最近项目要用到支付宝支付和微信支付,本想使用第三方支付框架ping++或者BeeCloud的,但是由于他们的收费问题,让我望而却步,而且公司给了相应的公钥.私钥和APPID等,所以就用下开放平台的呗. ...
- 现代3D图形编程学习-环境设置
本书系列 现代3D图形编程学习 环境设置 由于本书中的例子,均是基于OpenGL实现的,因此你的工作环境需要能够运行OpenGL,为了读者能够更好的运行原文中的示例,此处简单地介绍了linux和win ...