Sonar简介
Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量
通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测sonarQube能带来什么?
1.糟糕的复杂度分布
文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们,且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试
2.重复
显然程序中包含大量复制粘贴的代码是质量低下的sonar可以展示源码中重复严重的地方
3.缺乏单元测试
sonar可以很方便地统计并展示单元测试覆盖率
4.没有代码标准
sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写
5.没有足够的或者过多的注释
没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降
而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷
6.潜在的bug
sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检测出潜在的bug
7.糟糕的设计(原文Spaghetti Design,意大利面式设计)
通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系
可以检测自定义的架构规则
通过sonar可以管理第三方的jar包
可以利用LCOM4检测单个任务规则的应用情况
检测耦合
关于Spaghetti Design:http://docs.codehaus.org/display/SONAR/Spaghetti+Design
通过sonar可以有效检测以上在程序开发过程中的七大问题
SonarQube安装
预置条件
1.已安装JAVA环境
2.已安装有MySQL数据库
软件下载地址:http://www.sonarqube.org/downloads/
下载SonarQube与SonarQube Runner
SonarQube相当于服务器端
SonarQube Runner相当于客户端
安装sonar
1.将下载的包解压到某个路径,如/usr/local
2. 修改配置文件/conf/sonar.properties
ssss 修改下面三个地方,将原来的数据库连接配置注释掉就可。
sonar.web.host: 127.0.0.1 sonar.web.port: 9000 sonar.web.context: /sonar
sonar.jdbc.username: root sonar.jdbc.password: root
sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8 sonar.jdbc.driverClassName: com.mysql.jdbc.Driver
第一个是配置访问域名的。如上面的配置就是127.0.0.1:9000/sonar
第二个是数据库的用户名和密码
第三个是数据库的连接配置,这里配的是sonar数据库(要先建一个sonar名称的数据库)。
3.启动sonar
配置好后在bin目录下找到相对应的启动文件启动 sonar
启动sonar命令如下:
sh sonar.sh start
sh sonar.sh stop
sh sonar.sh restart
如果启动有问题,可以查看logs下面的日志看看具体是什么问题。
启动后就可以用相应郁闷访问了,如上面的配置就是127.0.0.1:9000/sonar
可能出现如下错误:Unable to locate any of the following binaries
提升文件夹权限即可 chmod 755 wrapper
4.防火墙问题
要注意的是linux如果有防火墙,需要将9000端口添加进去,不然不能访问。可以用"curl 网址"的命令来试试是否本地能访问。
5.安装中文包
输入127.0.0.1:9000/sonar,然后用admin/admin(默认用户名密码)来登录系统,在右上角用户名旁边有个setting,点击进入更新中心进行更新,如下图:
或者直接将包下载(连接为:http://docs.codehaus.org/display/SONAR/Plugin+Library/),放到/extensions/plugins目录下,要注意的是版本一定要对应,不然会报错。然后重启服务即可看到中文界面。