使用Hudson进行持续集成

上传人:笛音 文档编号:25399683 上传时间:2017-12-13 格式:DOC 页数:40 大小:2.90MB
返回 下载 相关 举报
使用Hudson进行持续集成_第1页
第1页 / 共40页
使用Hudson进行持续集成_第2页
第2页 / 共40页
使用Hudson进行持续集成_第3页
第3页 / 共40页
使用Hudson进行持续集成_第4页
第4页 / 共40页
使用Hudson进行持续集成_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《使用Hudson进行持续集成》由会员分享,可在线阅读,更多相关《使用Hudson进行持续集成(40页珍藏版)》请在金锄头文库上搜索。

1、使用 Hudson 进行持续集成1 Hudson 简介Hudson 是一款持续集成的工具,这里介绍它的一项最基本的功能。Hudson 可以集成 ANT 或 MAVEN 来编译所有代码,执行 JUnit 测试,并且生成测试报告。准确的说,Hudson 是一个集成的平台,里面的功能都是靠插件来实现的。当然也可以使用自己写脚本来完成此功能。并且脚本也可以完成自动发布的功能。以前做持续集成,都是自己写 shell 脚本实现的,原理很简单,svn 更新代码,使用 ant 编译和打包以及单元测试,当然,这些都是通过 shell 脚本进行控制,然后也是通过 shell 进行部署,一个 shell 脚本就搞定

2、了一切,其实想想,功能也蛮强的,不过就是需要写 shell 脚本,不是所有人都清楚如何写 shell 脚本的,另外,跨服务器部署时,为了不输入密码,需要建立ssh 密钥认证,总之,需要有一定的 linux 基础。1.1 Hudson 是什么?Hudson 是一个可扩展的持续集成引擎。主要用于:1.持续、自动地构建/测试软件项目。2.监控一些定时执行的任务。Hudson 拥有的特性包括: 易于安装 -只要把 hudson.war 部署到 servlet 容器,不需要数据库支持。 易于配置 -所有配置都是通过其提供的 web 界面实现。 集成 RSS/E-mail/IM-通过 RSS 发布构建结果

3、或当构建失败时通过 e-mail 实时通知。 生成 JUnit/TestNG 测试报告。 分布式构建支持 -Hudson 能够让多台计算机一起构建 /测试。 文件识别 - Hudson 能够跟踪哪次构建生成哪些 jar,哪次构建使用哪个版本的 jar 等。 插件支持 -Hudson 可以通过插件扩展,你可以开发适合自己团队使用的工具。a) Hudson 的由来目前持续集成(CI)已成为当前许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见做法。它是一种实践,旨在缓和和稳固软件的构建过程。并且能够帮助您的开发团队应对如下挑战: 软件构建自动化 :使用 CI,您只要按一下按钮,它会依

4、照预先制定的时间表,或者针对某一特定事件,就开始对目标软件进行一次构建过程。想想吧,尤其您从头到尾构建一个构 件的时候,这个构建过程应该不会是局限于某一特定 IDE、电脑或者个人的。 构建可持续的自动化检查 :CI 系统能够设定成持续地执行新增或修改后签入的源代码,也就是说,当软件开发团队需要周期性的检查新增或修改后的代码时,CI 系统会不断确认这些新代 码是否破坏了原有软件的成功构建。这减少了开发者们在检查彼此相互依存的代码中变化情况需要花费的时间和精力(说直接一点也是钱啊,呵呵)。 构建可持续的自动化测试 :一个构建检查的扩展部分,这个过程确保当新增或修改代码时不会导致预先制定的一套测试在

5、构建构件后失败。构建检查和测试一样,失败都会触发通知单 (Email,RSS 等等)给相关的当事人,告知对方一次构建或者一些测试失败了。 生成后后续过程的自动化 :一旦自动化检查和测试的构建已经完成,一个软件构件的构建周期中可能也需要一些额外的任务,诸如生成文档、打包软件、部署构件到一个运行环境或者软件仓 库。这样,构件才能更迅速地提供给用户使用。实现一个 CI 服务器你需要的最低要求是,一个比较容易获取的源代码仓库(包含源代码),一套构建脚本和程序,一系列围绕构件构建的可执行测试。下图概括了 CI 系统的基本结构。图 1. CI 系统的基本结构 该系统的各个组成部分是按如下顺序来发挥作用的:

6、1. 开发者检查新增和修改到源代码仓库后的代码。2. CI 服务器会为每一个项目创建了一个单独的工作区。当预设或请求一次新的构建时,它将把源代码仓库的源码存放到对应的工作区,哪里构建就执行哪 里。3. CI 服务器会在新近创建或者更新的工作区内执行构建过程。4. 一旦构建完成,CI 服务器就会在一个新的构件中选择性地执行原先定义的一套测试。如果构建失败,相关责任人将会通过电子邮件、即时短信或者其他的 方式获取到(失败) 通知。5. 如果构建成功,这个构件会被打包并转移到一个部署目标(如应用服务器) 和/或存储为软件仓库中的一个新版本。这个如软件仓库可以是 CI 服务器的一部分,也可以是一个外部

7、的仓库,诸如一个文件服务器或者像J、 SourceForge 分发的一个有效网址。源代码仓库和构件仓库是可以分开的,实际上它可以利用一些根本没有包含任何源代码控制系统(CVS、SVN、 CSS 等等)的 CI 服务器。6. CI 服务器通常会用某种控制台来进行项目的配置和调试,并且根据请求发起相应的操作,诸如即时构建、生成报告,或者检索一些构建好的构件。而 Hudson 就是这么一个 CI 服务器。它最初是由 Kohsuke Kawaguchi 编写的,他是一名 Sun 工程师,在 2005 年 2 月宣布释放了他的博客。现在已经有大约154 个版本。 以下的一些是使用 hudson 的理由:

8、 它是所有 CI 产品在安装和配置上中最简单的。 基于 Web 的用户界面非常友好、直观和灵活,在许多情况下,还对需单独配置的部分提供了基于 AJAX 的即时反馈。 Hudson 是基于 java 开发的(如果你是一个 Java 开发人员,这是非常有用的),但它不仅限于构建基于 Java 的软件。 Hudson 本身是一个很简洁的组件,但它提供了一组很明确和可扩展 API的 Hudson 组件。这批组成一个大的类库的 Hudson 组件反过来又 丰富了Hudson 的功能;它们都是开源的,而且它们可以直接通过 Hudson 的控制台来进行安装。 b) Hudson 的目标Hudsonn 的主要

9、目标是监控软件开发流程,快速显示问题,让开发人员马上解决问题。所以能保证开发人员以及相关人员省时省力提高开发效率。CI 服务器在整个开发过程中的主要作用是控制:当服务器在代码存储库中探测到修改时,它将运行构建的任务委托给构建过程本身。如果构建失败了,那么 CI 服务器将通知相关方面,然后继续监视存储库。它的角色看起来是被动的;但是,它是快速反映问题的关键。特别它在和 maven2 的整合上具有以下优点: Hudson 一切配置都可以在友好的界面上完成,包括其自身的配置和项目特有的配置,值得注意的是有些配置如 MAVEN_HOME 和 Email Server,只需要配置一次,所有的项目就都能用

10、了。XML?不再需要了,不过如果坚持,也可以通过 XML 配置。 支持 Maven 的模块(Module),Hudson 对 Maven2 做了优化,因此它能自动识别 Module,每个 Module 本身也是一个 build job。相当灵活。 测试报告聚合,所有模块的测试报告都被聚合在一起了,结果一目了然,使用诸如 CruiseControl 其他 CI,这几乎是件不可能完成的任务。 构件指纹(artifact fingerprint),每次 build 的结果构件都被很好的自动管理,无需任何配置就可以方便的浏览下载。2 安装与启动 Hudsonhudson 的安装很简单,就是一个 war

11、 包,丢到 tomcat 中就行,详细的说明请参考下面的链接英文原文:http:/ 下载 hudson.war。在 http:/ 下载最新hudson 以及插件。2. 在你的机器上创建下面三个目录。备注: hudsonhome 是所有数据的存放目录, hudsontmp 是临时文件目录,hudson 是 web 服务器的目录。httpPort 是 hudson 服务的端口。3. 将 hudson.war 拷贝到 hudson 的目录下。4. 创建启动文件 使用 tomcat 启动。5. 运行./start.sh 。通过 http:/10.1.101.159:8082/hudson-3.1.2/

12、 就可以访问hudson 了。使用 tomcat 作为 hudson 的容器时,选择系统管理后会出现如下提示:Your container doesnt use UTF-8 to decode URLs. If you use non-ASCII characters as a job name etc,this will cause problems. See Containers and Tomcat i18n for more details.意思是 tomcat 容器没有使用 UTF-8 编码,所以不能使用 中文作为任务名称,可以在 tomcat 中进行配置。1. 重新启动 hudso

13、n。重启 TOMCAT 即可。备注:关闭 TOMCAT 即可关闭 hudson。当然 hudson 也有强大的功能 .3 安装 hudson 插件。hudson 的好用基本体现在其众多而强大的插件上,在“系统管理”中可以找到“插件管理,基本插件为了更好的使用 hudson,还需要安装一些插件,在“可选插件”中进行选择:Deploy to container Plugin:使用其进行 war 包部署,支持tomcat,jboss,glassfishHudson SCP publisher plugin:如果要跨服务器部署,就需要安装该插件,其使用 scp 的方式将文件从一个服务器拷贝到另一台服务

14、器Hudson Email Extension Plugin:如果希望部署完成后能将结果以邮件的形式进行通知,可以安装该插件2. 点击【系统管理】 ,再点击【管理插件】 。在【高级】选项卡里上传插件。3. 下载相应的核心插件点击下面的 install 然后等一段时间 .显示打勾的状态就是这个插件已经安好了.一定要下载那相 SCP 的插件.4. 下载插件:MAVEN,SVN,SONAR 等插件这里是安装好的插件的列表:有一些插件在 available 里安装了 ,还可以在 Updates 里升级到最新版 .比如上图的.4 hudson 与配置使用Hudson 有大量的插件, 每一个插件都有其相应

15、的配置.hudson 本身也有一些是它自己的配置.好在 hudson 大部分都有现成的插件与相应的软件配合.hudson 的总体配置,都是在“系统管理”中进行配置的,hudson “系统管理”提供了如下功能,除了“系统设置”以外,其它的功能都比较简单: 系统设置全局设置&路径,这是 hudson 最核心的功能,jdk,ant,maven,scp ,邮件等等,都是在这里设置的。 读取设置放弃当前内存中所有的设置信息并从配置文件中重新读取 仅用于当您手动修改配置文件时重新读取设置。 管理插件添加、删除、禁用或启用 Hudson 功能扩展插件。 系统信息显示系统环境信息以帮助解决问题。该功能会列出系统属性,环境变量以及 Plugins 信息。 系统日志系统日志从 java.util.logging 捕获 Hudson 相关的日志信息。 负载统计检查您的资源利用情况,看看是否需要更多的计算机来帮助您构建。 Hudson CLI从您命令行或脚本访问或管理您的 Hudson。感兴趣的话可以通过命令行尝试一下 脚本命令行执行用于管理或故障探测或诊断的任意脚本命令。这就是 Groovy scripts。 管理节点添加、删除、控制和监视系统运行任务的节点。 管理用户创建/删

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号