分享

hudson入门与实战

 豆芽爱尚阅 2015-03-04

下面先看看一张简易关系图(Hudson+Maven+SVN)

    hudson

     |       \

     |         \

     |          \

     |———> \

maven     SVN

 

在上面的图中可以看见得出几条路径 
1. Maven ————> Hudson 
2. SVN ————> Hudson 
3. Maven ————> SVN 

先从Maven到Hudson: Maven与Hudson的关系相当于显示层和控制层的关系。为什么怎么说呢!因为Hudson本质不对源码进行编译,测试打包等底层操作。这些底层的操作都是交给Maven去操作。Maven类似于Javac一样。在Dos界面对Java源码的编译。因此我通常将Hudson看做是类似界面显示(但是如果说Hudson是绝对的界面显示有点不妥,是因为Hudson也是有些插件可以进行一些操作的)。 

在从SVN到Hudson:其实关系类SVN将它的源码路径和用户名注册到给Hudson。那么Hudson可以通过注册进行访问SVN,从SVN中取出源码。这里源码可以是任何的计算机语言。 

在Maven 到SVN:其实关系就相当于直接用Maven的scm连接SVN然后进行源码的操作。不过这样学习成本将不小,界面也不是很友好。因此才会引入Hudson通过界面配置进行集成。如果不用Hudson其实也是可以通过Maven和SVN进行集成。 

总结: 
   因此将Maven+SVN+Hudson进行集成是一个学习和操作方便的组合。同时如果明白这些工具的主要作用。其实Maven也可以用ant替换,SVN也可以用CVS替换。至于怎么使用Hudson怎么使用Maven,怎么使用SVN等,我将根据留言看是否有必要写贴。

 

_________________________________________

 

极限编程中一项建议实践便是持续集成,持续集成是指在开发阶段,对项目进行持续性自动化编译、测试,以达到控制代码质量的手段。 
     持续集成提供了及时发现问题、追踪问题、修复问题的机制,他替代了传统的在所有代码编写完毕后才提交QA部门进行测试的方法。 
     持续集成对单元测试较为依赖,测试覆盖率越高,单元测试越准确,越能体现持续集成的效果。持续集成主要在以下方面提供好处; 

1、持续自动化测试(持续集成可通过时间间隔触发,或其他方式触发) 
2、跟踪工程健康状况 
3、强制性单元测试用例,验收测试用例等 
4、静态代码检测,生成测试报告 

    Hudson是一款轻量级、易扩展、易配置的持续集成平台,该集成平台maven2有良好的支持,并且扩展插件丰富,包括findbug,PMD静态分析插件、emma单元测试覆盖率插件、junit测试报告插件等等。 

    下面我们以Hudson持续集成平台为例,主要讲解怎么安装hudson和hudson扩展插件的使用,并以maven2工程为例,建立新作业。 

     下载Hudson的war包,http:/// 在tomcat环境里,在conf\Catalina\localhost 中新建配置文件hudson.xml,配置如下 
<?xml version="1.0" encoding="UTF-8"?> 
   <Context docBase="yourPath/hudson.war" path="hudson" reloadable="false"> 
</Context> 
yourPath为hudson.war的目录路径。 
启动tomcat,访问http://localhost:8080/hudson便能访问我们的持续集成应用了。Jboss环境中,复制war包到default目录下即可。如下为安装好以后的hudson访问界面。 




应用搭建好以后,我们按一下步骤操作 

一、hudson全局配置信息 
     
    hudson配置,比如JDK的安装目录、Maven的安装目录等、SMTP服务器和用户密码等(用于编译失败提醒开发人员) 

     进入“系统管理”》“系统设置”,对maven的安装目录、jdk的安装目录进行设置,其他保持默认,如若需要高级配置,请打开问号下的提示信息,按照提示开启相应的选项。如下图为maven和jdk的配置信息。 
   



二、新建任务和任务配置 
  
    hudson任务表示一个持续集成的项目,任务配置包括项目版本控制分支、集成任务触发器(何时触发项目集成) 

     进入“新建任务”,如下图选择maven2项目,并输入任务名称 
    



    点击保存后,进入任务“配置”项 
   
    任务配置包括主要的SVN的项目分支配置、项目集成触发机制配置和编译目标配置。配置后如下所示 
    


注意: 然后点击Advanced按钮, 配置MAVEN_OPTS的最大内存和最小内存, 例如-Xmx512M -Xms128M, 读者可以根据自己机器配置的实际情况来配置此参数, 如果不配置此参数, 项目稍微有些大的时候会在运行时抛出内存溢出异常.另外, 千万不要说, 我在安装HUDSON的机器上配置 MAVEN_OPTS, 不配置HUDSUN里面的 MAVEN_OPTS变量, 因为这样一样会抛出内存溢出异常的, 因为HUDSON在执行MAVEN目标的时候, 是不使用系统环境变量的  

 

对上面的各图的解释:

 

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 将列出类信息 


三、添加插件和运用插件 
    
     配置一个任务后,我们希望hudson不仅可以通过集成发送测试报告、编译问题,还需要掌握静态代码的分析结果,比如findbus或pmd的分析结果,再或则是单元测试覆盖率的相应报告。接下来,我们安装findbus插件。 

      进入“系统管理”》“管理插件”,如下 
      
      


   我们在“可选插件”中找到findbugs插件,analysis-core插件,并下载。进入高级选项。上传并安装如下: 
   


重启系统,手动触发集成,我们可以见到最终的集成环境,包括插件的图示等,至此,hudson安装完毕,其中还有部分功能有待大家去研究和使用,插件也丰富多彩。 


 

 


elipse插件应用
eclipse updatesite:http://code.google.com/p/hudson-eclipse/
重新打开eclipse在windows->preferences下将出现hudson选项,设置默认的hudson url保存.
然后选择windows->open view打开hudson view
如果你己经配置hudson项目将列出hudson的项目名称,右键菜单可以看到所有的执行菜单,使用还是很方便的,希望大家来完善这篇文章.
 
 

   

参考文献:

1、持续集成工具hudson http://www./jchgj/200904231.asp 

2、HUDSON 持续集成MAVEN 项目http://yanguoyu./blog/540786

3、Hudson+Maven+SVN 快速搭建持续集成环境 http://www./BearRui/archive/2009/10/22/hudson-maven-svn.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多