程序员必备!Sonar代码质量管理工具
Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。Sonar 概述
Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。
与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。
在对其他工具的支持方面,Sonar 不仅提供了对 IDE 的支持,可以在 Eclipse 和 IntelliJ IDEA 这些工具里联机查看结果;同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。
此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。
Sonar 安装
到Sonar官网下载最新的发行版,下载zip包后解压到没有中文名的目录下,默认集成了jetty容器,可以直接启动提供服务,也可以通过脚本构建为war包,部署在tomcat容器中。
bin目录下选择相应平台,脚本启用。(Windows点击StartSonar.bat)
http://s4.iyunv.com/wyfs01/M00/32/C1/wKioOVKNpreiBOdCAABJHVjE2As488.jpg
然后在浏览器中访问:http://localhost:9000/
http://s8.iyunv.com/wyfs01/M02/32/C0/wKioJlKNpreRkXXWAAGKgJeeFzM051.jpg
Sonar 添加插件
插件添加方式:
[*]插件的下载地址为:http://docs.codehaus.org/display/SONAR/Plugin+Library,将下载后的插件上传到${SONAR_HOME}extensions\plugins目录下,重新启动sonar。
[*]在Sonar控制面板也可以添加插件
http://s7.iyunv.com/wyfs01/M01/32/C1/wKioOVKNprijOMOxAAI80iDm4ms263.jpg
Sonar默认集成了Java Ecosystem插件,该插件是一组插件的合集
[*]Java :java源代码解析,计算指标等
[*]Squid :检查违反Sonar定义规则的代码
[*]Checkstyle :使用CheckStyle检查违反统一代码编写风格的代码
[*]FindBugs :使用FindBugs检查违反规则的缺陷代码
[*]PMD :使用pmd检查违反规则的代码
[*]Surefire :使用Surefire执行单元测试
[*]Cobertura :使用Cobertura获取代码覆盖率
[*]JaCoCo :使用JaCOCO获取代码覆盖率
Sonar 集成项目
提供Maven项目的集成,其他结构的项目暂不清楚。
进入项目根目录下,先编译安装,然后利用maven集成的sonar插件发布。
[*]mvn clean install
[*]mvn sonar:sonar
http://s7.iyunv.com/wyfs01/M01/32/C1/wKioOVKNprih96brAAEscm740PE229.jpg
Maven 插件会自动把所需数据(如单元测试结果、静态检测结果等)上传到 Sonar 服务器上,需要说明的是,关于 Sonar 的配置并不在每个工程的 pom.xml 文件里,而是在 Maven 的配置文件 settings.xml 文件里,具体配置如下:
[*]<profiles>
[*] <profile>
[*] <id>sonar</id>
[*] <activation>
[*] <activeByDefault>true</activeByDefault>
[*] </activation>
[*] <properties>
[*] <!-- optional URL to server. Default value is http://localhost:9000 -->
[*] <sonar.host.url>http://localhost:9000/</sonar.host.url>
[*] </properties>
[*] </profile>
[*] </profiles>
集成发布成功:
http://s5.iyunv.com/wyfs01/M00/32/C0/wKioJlKNpriS_NE3AAGIDmOosnc274.jpg
Sonar 数据库
Sonar默认使用h2文本数据库,数据库连接的配置在 conf目录下的 sonar.properties文件 或者在项目发布时通过maven配置参数覆盖
Sonar 汉化
[*]下载http://repository.codehaus.org/org/codehaus/sonar-plugins/l10n/sonar-l10n-zh-plugin/1.2/sonar-l10n-zh-plugin-1.2.jar
[*]把下载的压缩包放到sanar安装目录下的/extensions/plugins 中
[*]重启Sonar server
结束语
Sonar 为代码的质量管理提供了一个平台,对传统的代码静态检测如 PMD、FindBugs 等工具进行整合,可以说是目前最强大的代码质量管理工具之一。
原文链接:http://my.oschina.net/u/1264515/blog/177862
页:
[1]