`

<转>Hudson+Sonar+Fisheye+Crucible

 
阅读更多

原链:http://tianya23.blog.51cto.com/1081650/372557

 

安装步骤 
======================== 
1. 下载hudson.war然后把它部署在jboss下面
wget -c http://hudson-ci.org/latest/hudson.war
 
2. 启动jboss 
3. 输入http://ip:8080/hudson进入hudson,配置jdk,maven参数 
 
4. 下载sonar,然后解压。
wget -c http://dist.sonar.codehaus.org/sonar-2.2.zip
5. 安装mysql 
  创建一个sonar的数据库。 
   CREATE DATABASE sonar;
  创建一个sonar用户: 
授权可以通过本地地址访问
GRANT ALL PRIVILEGES ON *.* TO 'hudson'@'localhost' IDENTIFIED BY 'sonar' WITH GRANT OPTION;
  flush privileges; 
 
授权可以通过远端或IP地址访问
GRANT ALL PRIVILEGES ON *.* TO 'hudson'@'%' IDENTIFIED BY 'sonar' WITH GRANT OPTION;
 
 
6. 配置sonar 
   修尬$sonar/conf/sonar.properties 
   打开里面的mysql配置,注视掉默认的DB配置 
sonar.web.host:                                                    ip地址
sonar.web.port:                                                     9000
sonar.web.context:                                                /
#----- Global database settings
sonar.jdbc.username:                                             hudson
sonar.jdbc.password:                                             sonar
sonar.jdbc.maxActive:                                            10
sonar.jdbc.maxIdle:                                                5
sonar.jdbc.minIdle:                                                2
sonar.jdbc.maxWait:                                                5000
sonar.jdbc.minEvictableIdleTimeMillis:         600000
sonar.jdbc.timeBetweenEvictionRunsMillis:    30000
 
7. 进入到hudson web界面里面的插件管理, 
   选择并安装sonar插件 
   安装成功后选择重启hudson 
 
8. 进入到hudson web系统,进行系统配置 
   配置sonar的如下信息并保存: 
   1. Server URL : http://localhost:9000 
   2. Database URL: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8 
   3. Database login : hudson
   4. Database password : sonar
   5. Database driver:com.mysql.jdbc.Driver 
9. 进入sonar目录启动sonar 
   $sonar/bin/(系统类型)/sonar.sh start 
10. 创建一个hudson任务(配置中选中sonar),然后执行任务 
11. 进入http://localhost:9000/ (默认用户为:admin/admin) 
    就可以看到sonar的执行结果, 
    或者点击hudson的sonar连接也可以看到。 
 
 

二、Hudson中工程配置

   Subversion的Repository URL处,增加源代码的位置
      (1)在Build Triggers中选择Build periodically在调度内容中填写0 1 * * *,使任务自动定时在每天凌晨1点钟运行。Schedule的语法类似于Linux cron

 

(2)在Post-build Actions中选择Publish FindBugs analysis results来生产findbugs统计结果报告,配置信息为:“**/target/test.findbugs/findbugs.xml

 

 

(3)在Post-build Actions中选择Publish JUnit test result report来生成JUnit统计结果报告,配置信息为:“**/target/test.report/*.xml

 

(4)在Post-build Actions中选择Publish HTML reports,用html形式来展现统计结果,比如要展示searchweb的单元测试结果,自动化运行结果,自动化的覆盖率。可以点击”Add”来添加要显示的东西。

 

(5)在Post-build Actions中选择Publish Cobertura Coverage Report来生成单元测试覆盖率报告。配置信息为:“**/target/test.cobertura/coverage.xml

 

(6)运行任务: 点击页面左侧的“立即生成”,done
-------------------------------------------------------------------
将test与代码检查工具插件分成不同的job来处理, test job用来对每次修改进行测试, 代码检查job则在每次发布前手工启动 

在我们的持续集成环境中, hudson 1.341 + jboss 4.2 这个版本组合比较稳定, hudson 版本太高会出现 dom4j相关的异常, 搞了好久没解决:( 

比较常用的插件是findbugs, cobertura组合, 其他没用过, 前者用来检查代码中的一些低级错误, 后者用来统计代码覆盖率, 覆盖率工具还有clover, emma, 前者收费商用, 生成的report更炫, 更强(里面继承了代码复杂度, 代码风险评估等静态分析功能), 后者emma的report相对要简易 

在使用cobertura之后, 如果是maven, goals and options不需要写test, 否则会出现test phase 跑两遍, 在跑cobertura之前默认会跑test. 比如这样设置:-U clean cobertura:cobertura 

在hudson 1.341这个版本, cobertura maven plugin版本采用2.2就好, 太高(比如2.3)在生成report的时候会有一堆的语法检查warning, 虽然无大碍. 

在使用cobertura的时候有一个限制, 就是如果test跟要测试的project是分离的, 换句话说如果test是一个单独的project, 那么这个貌似是没法对被测试的project统计代码覆盖率, 而clover则没有这个限制, 要钱的就是不一样啊! 
关于cobertura的maven plugin配置, 本人认为hudson上的配置太繁琐, 其实可以简单的配置为: 
Xml代码 
  1.  <plugin>  
  2. <groupId>org.codehaus.mojo</groupId>  
  3. <artifactId>cobertura-maven-plugin</artifactId>  
  4. <version>2.2</version>  
  5. <configuration>  
  6.     <formats>  
  7.         <format>xml</format>  
  8.     </formats>  
  9. </configuration>  
  10.  </plugin>  


对clover的maven命令也有一些技巧, 一般要这样配置: 
-U clean clover2:setup test clover2:aggregate clover2:clover 
如果将test放在clover2:setup前面, 则clover的一些设置将会被test被清掉, 导致有些report可能没法输出 

所以最终我们的选择hudson 1.341 + jboss 4.2 +clover plugin  + findbugs plugin
分享到:
评论

相关推荐

    持续集成平台使用hudson+sonar

    持续集成平台使用 Hudson+Sonar 持续集成平台使用 Hudson+Sonar 是一种常用的自动化构建和测试解决方案,主要用于软件项目的持续集成和质量控制。本文将详细介绍 Hudson 和 Sonar 的概念、安装、配置和使用方法,并...

    Hudson+Sonar+Maven+SVN详细集成介绍

    Hudson+Sonar+Maven+SVN详细集成介绍

    持续集成-SVN+Maven+Hudson+Sonar PPT讲解

    持续集成-SVN+Maven+Hudson+Sonar PPT讲解,持续集成的原理

    hudson+sonar自动部署配置

    【Hudson + Sonar 自动部署配置】 在 IT 领域中,自动化部署和质量分析是提升开发效率和保证代码质量的关键环节。Hudson 和 Sonar 是两款强大的工具,分别用于持续集成和代码质量管理。本文将详细介绍如何配置 ...

    <<Maven权威指南>>+<<Maven in Action>> pdf扫描版丛书

    2. 敏捷开发与持续集成:讲解如何利用Maven与敏捷开发方法(如Scrum、XP)结合,以及如何与持续集成工具(如Jenkins、Hudson)集成。 3. 企业级应用构建:针对大型企业级Java应用的构建策略,包括模块化、依赖管理...

    Handbook of Fiber Optic Data Communication---part2

    Conclusion &lt;br&gt;730 &lt;br&gt;References &lt;br&gt;732 &lt;br&gt;Appendix A Measurement Conversion Tables &lt;br&gt;735 &lt;br&gt;Appendix &lt;br&gt;B Physical Constants &lt;br&gt;737 &lt;br&gt;Appendix &lt;br&gt;C Index of Professional Organizations &lt;br...

    Handbook of Fiber Optic Data Communication---part3

    Conclusion &lt;br&gt;730 &lt;br&gt;References &lt;br&gt;732 &lt;br&gt;Appendix A Measurement Conversion Tables &lt;br&gt;735 &lt;br&gt;Appendix &lt;br&gt;B Physical Constants &lt;br&gt;737 &lt;br&gt;Appendix &lt;br&gt;C Index of Professional Organizations &lt;br...

    html5+jq模拟杂志翻页

    &lt;div class="perspective"&gt;&lt;div class="book" data-book="book-1"&gt;&lt;div class="cover"&gt;&lt;div class="front"&gt;&lt;/div&gt;&lt;div class="inner inner-left"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="inner inner-right"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div...

    Hudson+Visual Studio+SubVersion 远程编译环境搭建

    Hudson+Visual Studio+SubVersion 远程编译环境搭建。 mht文档,用浏览器打开。

    Hudson持续集成环境搭建

    &lt;artifactId&gt;maven-checkstyle-plugin&lt;/artifactId&gt; &lt;version&gt;2.10&lt;/version&gt; &lt;configuration&gt; &lt;configLocation&gt;checkstyle.xml&lt;/configLocation&gt; &lt;/configuration&gt; &lt;/plugin&gt; &lt;!-- findbugs --&gt; &lt;plugin&gt; ...

    Hudson+Maven+SVN 自动部署

    【标题】"Hudson+Maven+SVN 自动部署" 在现代软件开发流程中,自动化构建和部署是提升效率和质量的关键环节。Hudson、Maven和SVN(Subversion)是三个重要的工具,它们共同协作可以实现无缝的持续集成和自动部署。 ...

    sonar安装配置指南(sonar+MySQL+ant)原创

    Sonar分析参数可以在Ant任务中通过`&lt;sonar&gt;`元素的属性或在`sonar-project.properties`文件中指定,如质量门限、分析范围等。 附录2:FindBugs更新 对于FindBugs插件,需要注意其版本兼容性问题。如果遇到解析日期...

    附加-jenkins验证直接登录和验证登录的设置.docx

    &lt;authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy"&gt; &lt;denyAnonymousReadAccess&gt;true&lt;/denyAnonymousReadAccess&gt; &lt;/authorizationStrategy&gt; &lt;securityRealm class=...

    Hudson Maven generate report

    -- 配置PMD规则集 --&gt;\n &lt;/rulesets&gt;\n &lt;/configuration&gt;\n &lt;/plugin&gt;\n &lt;plugin&gt;\n &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;\n &lt;artifactId&gt;maven-cpd-plugin&lt;/artifactId&gt;\n &lt;version&gt;3.0&lt;/version&gt;\n ...

    hudson+ant配置详细教程PPT

    - `build.xml`文件的基本结构由`&lt;project&gt;`元素组成,其中包含一个或多个`&lt;target&gt;`元素。 - 每个`&lt;target&gt;`代表构建过程中的一个步骤,可以执行多个操作,如编译源代码。 - **定义依赖关系**: - 在构建大型...

    ssh2的配置,xml的各项配置

    &lt;hudson.plugins.sshbuildsteps.SSHBuilder&gt; &lt;host&gt;example.com&lt;/host&gt; &lt;port&gt;22&lt;/port&gt; &lt;username&gt;jenkins&lt;/username&gt; &lt;keyFilePath&gt;/var/jenkins/.ssh/id_rsa&lt;/keyFilePath&gt; ... &lt;/hudson.plugins....

    Hudson+Maven+SVN_快速搭建持续集成环境

    Hudson+Maven+SVN_快速搭建持续集成环境.docx

Global site tag (gtag.js) - Google Analytics