如何在Hudson上集成sonar来实现代码质量控制
Sonar是一款集成了PMD,checkstyle, FindBugs等代码质量管理功能的开源软件。http://www.sonarsource.org/ 可以下载最新的版本。由于sonar是基于Maven 2实现构建的,所以你还需要从http://maven.apache.org/download.html 下载Maven 2。把sonar和Maven 2解压缩,然后设置MAVEN_HOME以及PATH加$MAVEN_HOME/bin。可以执行mvn –version来检查Maven的安装是否正确。
Sonar的配置主要改为mysql来实现数据持久化。编辑SONAR_HOME/conf/sonar.properties文件,注释掉embedded database段(derby),取消注释MySQL。
Maven 2的配置从前一个版本升级后得到极大的简化,基本上可以看成3层结构,$MAVEN_HOME/settings.xml为全局配置,~/.m2/settings.xml为用户级配置,项目下pom.xml为项目级配置。为了sonar的运行我们需要在settings.xml配置两项,一个是LocalRepository,另一个是增加profile为sonar。Sonar的Profile举例如下(包含在profiles节点下, sonar server可以跟hudson server一致):
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url> jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
</sonar.jdbc.url>
<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>
<sonar.host.url>http://SONAR_SERVER:9000</sonar.host.url>
</properties>
</profile>
以上基本完成了Sonar和Maven的安装和配置。接下来我们需要增加我们的管理对象开发项目了。因为我的Java项目是Web application,所以用如下命令创建:
mvn archetype:create -DgroupId=com.company.projectShortName -DartifactId=projectName -DarchetypeArtifactId=maven-archetype-webapp
Maven会在当前目录创建一个标准代码目录结构。
projectName
|-- pom.xml
`-- src
|-- main
| `-- java
| `-- webapp
| `-- WEB-INF
| `-- lib
| `-- web.xml
`-- test
`-- java
删除projectName/src/main/java, projectName/src/main/webapp/WEB-INF/lib, projectName/src/test, 然后创建相同链接到你项目真实的java/src, WEB-INF/lib, java/test。
编辑projectName/pom.xml,在build标签下增加
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<extdirs>src/main/webapp/WEB-INF/lib</extdirs>
</compilerArguments>
</configuration>
</plugin>
</plugins>
以上插件为了解决Maven默认用1.3来编译导致大量泛型类无法通过编译的问题,强制用jdk 1.5即可支持泛型类。另外把webapp的组件jar目录设置好。
这样就完成了所有Sonar和Maven对项目的配置了。现在可以进入项目Maven目录,执行mvn sonar:sonar来分析代码了。
不过我们的目标是在hudson系统中集成sonar。所以我们还有几个步骤需要完成。
首先把hudson的sonar插件从http:// hudson-ci.org/download/plugins/sonar下载得到。添加到hudson服务器的$JBOSS_HOME/server/all/deploy/hudson.war/WEB-INF/plugins然后redeploy hudson即可。登陆hudson界面,在系统配置中针对sonar节增加sonar,配置server URL, database url, database login, database password, database driver跟Maven 2的settings.xml中sonar profile一致即可。勾选上“用户手工启动”。
然后在项目的配置页面里,勾选上Sonar,把Maven version, Root POM, MAVEN_OPTS配置好即可。其中Maven version为全局配置的版本,Root POM就是maven create的projectName/pom.xml(需要全路径,因为与hudson任务的工作空间不同),MAVEN_OPTS配置为-Xmx512m -XX:MaxPermSize=256m以防止内存错误。
喝杯茶,等着hudson的构建结果吧。你可以找到sonar的分析报告,关于重复代码,危险代码,混乱代码等都有哦。至于代码规则等,则需要你根据公司/项目的规范进行相应的增删了。
分享到:
相关推荐
例如,在一个大型软件项目中,使用 Hudson 和 Sonar 可以自动化构建和测试,提高代码质量和测试覆盖率。 本文对 Hudson 和 Sonar 的概念、安装、配置和使用方法进行了详细的介绍,并提供了实践经验和案例分析,旨在...
Hudson 和 Sonar 是两款强大的工具,分别用于持续集成和代码质量管理。本文将详细介绍如何配置 Hudson 和 Sonar 进行自动部署。 首先,我们来看Sonar的配置: 1. 数据库设置: - 在 MySQL 中创建名为 `sonar` 的...
通过持续集成控制代码质量 Maven+Hudson+Sonar 持续集成的基本原则很简单:尽早集成,经常集成。 持续自动构建 :使用CI,您只要按一下按钮,它会依照预先制定的时间表,或者响应某一特定事件,就开始进行一次构建...
- 下载Maven 3.0.5版本(建议不使用3.1或更高版本以避免与Hudson集成出现问题): ```bash wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz ``` - 解压并...
6. **自动化测试**:配置Hudson在每次构建时执行单元测试和集成测试,确保代码质量。 7. **持续部署**:如果需要,还可以配置Hudson在构建成功后自动将应用部署到目标环境。 使用Hudson时,有几点需要注意: 1. *...
此外,为了在开发过程中实时获取代码质量反馈,我们可以安装和使用 Sonar Eclipse 插件: 1. **安装**:在 Eclipse IDE 中,通过 Marketplace 或者 Update Site 安装 SonarQube 插件。 2. **配置**:配置插件连接到...
与传统持续集成工具(如Hudson/Jenkins)相比,Sonar不仅仅是在Web界面上直接展示各种代码检查工具的结果,而是通过插件对这些结果进行深加工,采用量化指标来衡量代码质量的变化,从而实现了更加精细化的代码质量...
与持续集成工具(例如Hudson/Jenkins等)不同,Sonar并不是简单地把不同的代码检查工具结果(例如FindBugs,PMD等)直接显示在Web页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量...
Jacoco则关注于代码测试覆盖率,它能够帮助开发者了解测试覆盖的代码范围,以此来提高代码质量。而Hudson作为持续集成工具,能够自动化地构建项目,并执行一系列的测试和部署。Sonar工具则关注于代码质量的检测和...
Sonar 是一个强大的静态代码分析和质量管理平台,用于检测代码中的缺陷、代码异味以及潜在的错误。本指南将详细介绍如何在环境中安装配置Sonar,同时使用MySQL作为数据存储,并通过Ant构建工具调用Sonar任务。以下是...
5、几乎支持了你所能想到的一切代码质量问题:从静态分析到动态分析(单元测试)、从系统分析到人工评审、从历史分析到现在的版本分析、从Web客户端到Eclipse插件、从本地分析到远程分析、从集成其他代码分析插件...
Hudson、Maven 和 Sonar 的集成开发体系是一种高效的软件开发流程管理方式,它结合了项目构建、持续集成以及代码质量分析等多个方面的能力,旨在提高软件开发效率与质量。 #### 二、Maven详解 **1. Maven简介** -...
在持续集成管理平台中,代码质量管理工具 plays a crucial role in ensuring the quality of the code. 它可以帮助检查代码的质量和可维护性,提高软件开发的效率。 持续集成引擎 持续集成引擎是软件开发中不可或...