ci持续集成(转)

一、持续集成的组成java

  • 用 Ant 或 Maven 等工具创建的自动构建过程
  • 一个代码存储库,好比 CVS 或 Subversion
  • 一个 CI 服务器,好比 Hudson,可是 cron 做业也能够知足须要
  • 们来详细讨论这些组件。

    自动的构建

    CI 过程会常常集成软件,这须要经过构建来完成。在 Java 环境中,Ant 是经常使用的构建平台。可使用 Ant 可靠地自动执行编译、测试等任务,甚至能够执行软件检查和部署。在掌握了 CI 的全部组件以后,您会发现构建策略是成功的 CI 过程最重要的方面。若是缺乏适当的构建过程,CI 就难以发挥做用。

    源代码管理

    为了让 CI 正确地发挥做用,须要一个源代码管理(SCM)系统或存储库,好比 Subversion 或 CVS。CI 服务器向 SCM 存储库查询代码修改。在找到修改时,CI 服务器执行签出(即更新本地沙箱)并执行构建。除了执行得更频繁以外,构建过程与在本地环境中执行的构建相同。

    CI 服务器

    对于成功的 CI 过程,须要用一个自动的过程监视 SCM 存储库并在探测到修改时运行构建,这也很是重要。对于 Java 平台,有许多可用的 CI 服务器,包括开放源码软件和商业产品。它们的基本配置都很类似,适合监视特定的 SCM 并在探测到修改时运行构建。全部 CI 服务器都有本身的优缺点。Hudson 尤为让人感兴趣,由于它容易配置并且具备强大的插件,这些插件能够显示测试结果趋势等信息。

    二.Hudson 简介shell

    Hudson 是一种革命性的开放源码 CI 服务器,它从之前的 CI 服务器吸收了许多经验教训。Hudson 最吸引人的特性之一是它很容易配置:很难找到更容易设置的 CI 服务器,也很难找到开箱即用特性如此丰富的 CI 服务器。Hudson 容易使用的第二个缘由是它具备强大的插件框架,因此很容易添加特性。例如,一个 Hudson 插件能够随时间的推移跟踪 FindBugs 和代码覆盖。它还能够报告测试结果的趋势(来自 JUnit 或 TestNG)以及构建结果和对应的执行时间。数据库

    Hudson 须要运行 Java 5。若是须要使用 Hudson 附带的嵌入式容器(Winstone)以外的其余容器,那么只需使用一种 Servlet 2.4 容器。对于大多数状况,Winstone 就足够了。windows

    三.Hudson使用浏览器

    CI 过程的最后一个方面是 CI 服务器自己。CI 服务器在整个开发过程当中的主要做用是控制者:当服务器在代码存储库中探测到修改时,它将运行构建的任务委托给构建过程自己。若是构建失败了,那么 CI 服务器将通知相关方面,而后继续监视存储库。它的角色看起来是被动的;可是,它是快速反映问题的关键。安全

    安装 Hudson服务器

    使用 Hudson 的主要好处之一是它的设置很简单。在最简单的状况下,Hudson 只须要两个步骤:框架

    1. 下载最新的版本(它打包为一个 WAR 文件)。 hudson官方网址:https://hudson.dev.java.net/
    2. 运行 java -jar hudson.war

    这样就能够了。由于下载的是一个 WAR 文件,因此若是愿意,能够将它部署在 Tomcat 或 JBoss 等容器中。这彻底由您本身决定。固然,Hudson 假设在安装它的机器上运行着 Java 5,并且若是定义了 JAVA_HOME 环境变量,Hudson 就会使用它。(正如前面提到的,Hudson 须要 Java 5。)dom

    在安装并运行 Hudson 以后(将 WAR 文件部署到 servlet 容器或从命令行执行 java -jar hudson.war),启动浏览器并访问默认安装位置。若是经过命令行运行 Hudson 并且您在本地机器上,那么能够访问 http://localhost:8080/eclipse


    若是一切正常(实际上不太可能出问题),应该会看到图 2 所示的 Hudson 启动页面。

    配置 Hudson

    若是访问 Hudson 主页的本地实例并单击左上角的 Manage Hudson 连接,应该会看到图 3 所示的可配置选项列表。

    图 3. 配置 Hudson 很是容易

    参数说明:
    system.message 填写一些说明信息
    Quiet period:hudson定时构建工程的时间(秒)
     :设置hudson登录的规则(默认为匿名登录)
    TCP port for JNLP slave agents:不了解JNLP不敢胡写总之就是三种方式:固定(fixed) 随机(Radom) 不使用(disabled),使用固定时能够填入JNLP信息

    security realm:可使用中间件容器,数据库,LDAP来验证安全,具体怎样用法没用过,之后会有更新,研究中.
    authorized:能够设置身份的验证方法:系统用户,匿名用户,自定义用户,还有继承用户(此处也在研究中,建议使用匿名用户)
    JDK installations:设置JDK的安装路径
    Shell executable:设置window shell命令
    Ant installation:设置ant 的安装路径
    mave installation设置mave的安装路径
    cvs executable:设置cvsnt执行进程的路径(cvs.exe)
    .cvspass file:设置cvsnt管理员文件的路径(passwd文件)
    e-mail notification:设置当发生错误时发送的邮箱地址
    hudson url:就是hudson的默认地址

    还能够配置服务器的其余几个方面,好比向 Hudson 提供一个电子邮件服务器的位置,以便在构建失败时接收电子邮件。根据您的组织设置电子邮件的方式,可能须要让系统管理员帮助设置这个特性。设置电子邮件并非必需的;Hudson 还支持以 RSS 做为通知机制,对于某些人来讲,这种方式比电子邮件更好。究竟选择哪些通知机制彻底取决于您。(注意,这里说的是 “哪些”,也就是说,能够同时使用多种通知机制!)

    在 Hudson 中配置项目

    既然 Hudson 已经可以与 SCM 存储库通讯了,就该配置项目了。这个示例所用的项目称为 solar-ci。在 Hudson 主页上单击左上角的 New Job 连接。这时会看到图 5 所示的屏幕:



    该页面可使咱们经过hudson来管理cvs里的一个对应的工程

    Project name:工程名称

    Description:描述信息

    Discard build:若是选择此项能够设置build记录保存的天数,或者build记录保存的数理,或者只保存最新的build记录,通常不需填写

    Advance project options:能够设置hudson定时检查cvs工程的时间间隔,还能够指定cvs工程check out到本地的工程路径,通常不须要填写

    Source code management:咱们选择cvs将出现如下参数:

    Cvsroot:将写cvs登录字符串,格式(:protocol:user:password@host:path),例如: :pserver:cvsadmin:1@127.0.0.1:2401:/CVSNT/Repository,使用cvs必填
     

    Modules:填写cvs仓库下的具体工程名, 使用cvs必填

    Branch:填写分支名称,也能够勾选this is a tag,no a branch指定标记名称
     

    选择subversion能够进行相应的subversion设置

    Build trigger能够设置hudson自动执行的一些动做,build after others projects are built指定hudson构建完成后须要继续构建的工程名

    Build periodically 根据hudson定义的语法规则来设定自动构建工程的时间间隔

    Post-build actions

    设置一些构建完成后的动做,如放邮件,打包,产生测试报告,产生java doc 等.

    点击ok保存设置

    使用hudson
    进入刚配置的项目,能够在左侧build history看到历史的build记录,点击build now 能够手动执行构建动做,完成后能够经过记录标记的颜色来看是否出错,红色有错,蓝色成功.点击记录查看详细信息,若是有变化hudson将列出类信息
     

    elipse插件应用eclipse updatesite:http://code.google.com/p/hudson-eclipse/从新打开eclipse在windows->preferences下将出现hudson选项,设置默认的hudson url保存.而后选择windows->open view打开hudson view若是你己经配置hudson项目将列出hudson的项目名称,右键菜单能够看到全部的执行菜单,使用仍是很方便的,但愿你们来完善这篇文章.
相关文章
相关标签/搜索