您的位置:首页 > 编程语言

持续集成代码管理平台Hudson+Sonar(一)

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

2、跟踪工程健康状况

3、强制性单元测试用例,验收测试用例等

4、静态代码检测,生成测试报告

Hudson是一款轻量级、易扩展、易配置的持续集成平台,该集成平台maven3有良好的支持,并且扩展插件丰富,包括Findbug,PMD静态分析插件、emma单元测试覆盖率插件、junit测试报告插件等等。
这是一套从开始到结束过程中的一个完整的代码检测,规范化,分析代码质量的一个平台。
一、首先介绍一下Sonar
这个是一个开源的质量管理平台,专注于从项目到类方法的持续的分析和测量技术质量,它把代码质量相关软件集成到一起统一管理。它支持插件式管理,比如Checkstyle,Findbug,PMD这些插件。然后通过分析把结果保存在数据库中,用户可以通过浏览器进行浏览查看分析结果,sonar的整个流程如下图所示。


接下来简单介绍一下他的流程:代码通过Sonar的检查包括Sonar的插件,然后进行下一步;

把检查的结果通过浏览器显示出来,通过sonar的配置文件指定的连接数据库,把检查的结果与数据库中的检查规则进行比较、分析然后得出代码漏,质量不高,不规范等问题;

安装和配置sonar步骤:
1.安装mysql,修改sonar连接DB方式为mysql

# yum install mysql-connector-odbc.x86_64 mysql-server //我是用rpm包装的,当然可以编译安装

# service mysqld start

# mysql

mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;

mysql> grant all privileges on sonar.* to 'sonar'@'localhost' identified by 'sonar';

mysql> flush privileges;

2.安装sonar

下载sonar然后放到服务器上

# cp sonar-3.3.2.zip /usr/local/

# unzip sonar-3.3.2.zip

# ln -sv sonar-3.3.2 sonar

# vim sonar/conf/sonar.properties 修改sonar的配置文件

把以下几项打开:

sonar.jdbc.username: sonar //授权连接数据库的帐号

sonar.jdbc.password: sonar //连接数据库密码

#----- MySQL 5.x/6.x

# Comment the embedded database and uncomment the following line to use MySQL

sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true

# Optional properties

sonar.jdbc.driverClassName: com.mysql.jdbc.Driver

3.启动sonar

# sonar/bin/linux-x86-64/sonar.sh start

二、其次介绍一下Hudson
Hudson是一种革命性的开放源码 CI 服务器,它具有强大的插件框架 ,所以很容易添加特性,例如添加 tomcat 插件后,可以方将 build 好的 war 包方便的部署到 Tomcat 里。他的整个流程大致如下图所示。


Hudson是一个调度管理接口,通过调度Maven执行构建和返回,通过调用sonar进行对源码开发归法进行检查,而Sonar又可以利用插件进行检查,这样就能更方便的进行有机结合。 然后通过浏览器可以查看构建结果和记录,由于Hudson可以把war包放到tomcat中,所以只需要一个tomcat环境即可实现浏览。配置Hudson
1.安装jdk环境

# cd /usr/local

# chmod +x jdk-6u25-linux-x64.bin

# ln -sv jdk1.6.0_25 java

# vim /etc/profile 添加java环境变量

#set jdk env

JAVA_HOME=/usr/local/java

CLASSPATH=$JAVA_HOME/lib/tools.jar

PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME CLASSPATH PATH

2.解压安装tomcat

# tar xf apache-tomcat-6.0.36.tar.gz

# ln -sv apache-tomcat-6.0.36 tomcat

# vim /etc/profile 添加tomcat的环境变量

#set tomcat env

export TOMCAT_HOME=/usr/local/tomcat

export BASE_HOME=/usr/local/tomcat

# source /etc/profile

# $TOMCAT_HOME/bin/startup.sh start

vim /etc/init.d/tomcat添加一下内容

#chkconfig: 2345 63 37
#description:tomcat server
TOMCAT_HOME=/usr/local/tomcat
BASE_HOME=/usr/local/tomcat
JAVA_HOME=/usr/local/java
CATALINA_HOME=/usr/local/tomcat

启动tomcat即可。

3.下载hudson

# wget http://java.net/downloads/hudson/war/hudson-2.2.1.war
# mv hudson-2.2.1.war /usr/local/tomcat/webapps/hudson.war

然后重新启动tomcat

#/usr/local/tomcat/startup.sh start

然后在浏览器上输入http://IP:8080/hudson即可访问

访问如下图所示:


下一篇博客将介绍如何进行代码检查和构建整个过程。

参考文档:http://docs.codehaus.org/display/SONAR/Documentation
本文出自 “Ro の博客” 博客,请务必保留此出处http://luoweiro.blog.51cto.com/2186161/1072399
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: