代码质量管理平台Sonar

简介

Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。Sonar 不仅提供了对 IDE 的支持,可以在 Eclipse 和 IntelliJ IDEA 这些工具里联机查看结果;同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。

安装运行

Sonar的安装可以说是非常便利了,自带Jetty应用服务器和H2数据库,唯一的要求就是系统安装了JRE6+,到官网下载最新的安装包解压至任意目录,然后切换到解压的目录,运行一条命令即可启动平台。

当前测试环境:Red Hat Enterprise Linux Server release 5.8 (Tikanga),sonar-3.7.4。

到这里平台已经运行起来了,是不是超简单,bin目录下有各种系统版本的目录,根据你所使用的系统进入相应目录去执行sonar.sh。

sonar first run

sonar first run

系统配置

默认情况下,Sonar监听的端口是9000,如果你当前的服务器跑着其他服务(例如:php-cgi),端口可能会冲突,你需要修改一下默认配置,改变端口并且可以在服务器以外的电脑上访问,Sonar的配置文件是conf/sonar.properties。

找到上面两行,把前面的#符号去掉重启服务即可生效,这样你就可以在其他电脑上使用浏览器访问平台:http://yourserverip:9100。

Sonar默认使用内置的H2数据库,如果你希望使用自己的数据库可以修改以下配置(以mysql为例,数据库名为:sonar):

修改完配置后重启Sonar即可。特别注意,由于客户端需要,mysql要为sonar帐号配置本地和远程访问。

使用 Sonar 进行代码质量管理

系统运行起来后,我们希望它能帮我们实现代码质量检查,Sonar提供Python,Java,Javascript,C#等多种插件支持来帮助我们完成这项工作,接下来我们以Javascript检查为例来讲解如何使用它来管理我们的编码质量。

首先到插件官网找到Javascript插件,将它下载下来,放到Sonar的extensions/plugins目录下,然后重启平台服务,成功安装后可以用管理帐号登录,在Setting->Update Center里可以看到Installed Plugins列表中出现了JavaScript插件。

installed plugin

installed plugin

点击Quality Profiles菜单可以看到插件对应的配置列表,名称为Sonar way的配置是插件内置的代码检查规则,你可以点击配置名进入配置,设置规则对应的报错等级。当然你也可以通过右边的功能进行配置的创建,备份,复制,重命名和删除(插件内置配置不可删除)等操作,如果你需要自定义规则你需要对插件做二次开发,具体可以查阅http://docs.codehaus.org/display/SONAR/Extending+Coding+Rules,这里暂不做展开。

javascript sonar rules

javascript sonar rules

安装完插件后,Sonar支持一下几种方式进行代码检查:

  • Analyzing with SonarQube Runner (recommended analyzer)
  • Analyzing with SonarQube Ant Task
  • Analyzing with Maven
  • Analyzing with Gradle
  • CI Engines

官方推荐SonarQube Runner,我们就以这个方式来举例,不管是哪种方式,大致原理都是配置好客户端工具,将要检查的代码推送到平台进行检查。在你的工作电脑上,按照SonarQube Runner安装和配置文档,下载解压SonarQube Runner到任意路径,在conf/sonar-runner.properties修改服务器端的相关配置(服务器端地址,数据库连接及帐号等),添加名为SONAR_RUNNER_HOME的环境变量,值为之前解压的目录路径,添加SonarQube Runner解压目录下的bin的完整路径到path中,然后打开cmd(在Windows 7下演示)运行sonar-runner -h,正常输出如下,说明命令配置成功了

接下来在你的项目目录下新建一个sonar-project.properties文件,该文件用来配置项目相关的信息,配置的内容模版如下:

切换命令行路径到你的项目根目录,也就是上述配置所在的位置,执行sonar-runner,即可看到成功运行的结果。

sonar runner test

sonar runner test

在平台的All Project里就生成了一条记录:

sonar runner test project

sonar runner test project

点击该记录标题可以进入更详细的报表,本文测试的Javascript项目包:javascript-sonar-runner

更多的配置及相关内容请查阅官方文档。

参考文档:
http://docs.codehaus.org/display/SONAR/Setup+and+Upgrade
http://docs.codehaus.org/display/SONAR/Update+Center
http://www.sonarsource.com/products/plugins/
http://docs.codehaus.org/display/SONAR/Analyzing+Source+Code

如需转载,请注明出处:https://i.wanz.im/2014/05/08/sonar-for-code-quality-management/

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Time limit is exhausted. Please reload CAPTCHA.