SonarQube配置与使用教程.PDF
SonarQube 配置与使用教程
Sonar 简介
Sonar 是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维
度检测代码质量。
通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy 等等二十
几种编程语言的代码质量管理与检测。
SonarQube 能带来什么?
1. 糟糕的复杂度分布
文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员难以理解它们,
且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回
归测试。
2. 重复
显然程序中包含大量复制粘贴的代码是质量低下的,sonar 可以展示源码中重复严重
的地方。
3. 缺乏单元测试
sonar 可以很方便地统计并展示单元测试覆盖率。
1 / 6
4. 没有代码标准
sonar 可以通过PMD,CheckStyle,Findbugs 等等代码规则检测工具规范代码编写。
5. 没有足够的或者过多的注释
没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性
将大幅下降。而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初
衷。
6. 潜在的bug
sonar 可以通过PMD,CheckStyle,Findbugs 等等代码规则检测工具检测出潜在的bug 。
7. 糟糕的设计(原文Spaghetti Design,意大利面式设计)
通过sonar 可以找出循环,展示包与包、类与类之间的相互依赖关系;
可以检测自定义的架构规则;
通过sonar 可以管理第三方的jar 包;
可以利用LCOM4 检测单个任务规则的应用情况;
检测耦合。
关于Spaghetti Design:/display/SONAR/Spaghetti+Design 。
通过sonar 可以有效检测以上在程序开发过程中的七大问题。
2 / 6
SonarQube 安装
预置条件
1. 已安装Java 环境
2. 安装sonar 与sonar-runner
2.1 将下载的sonar-3.7.4.zip 包解压至Linux 某路径如/usr/local ,
2.2 将下载的sonar-runner-dist-2.4.zip 包解压某路径/usr/local ;
小编直接解压缩到Documents 文件夹里面,如下图:
2.3 添加SONAR_HOME、SONAR_RUNNER_HOME 环境变量,并将
SONAR_RUNNER_HOME 加入 PATH (这步主要是方便大家在shell 方便进入sonar 文
件夹和进行编译):
2.3.1 在shell 里面用vi 或者gedit 打开 /etc/profile
2.3.2 在文件末端添加你解压缩的sonar 文件夹的路径,如下图:
注意:小编选择的系统是linux 32bit,具体的系统配置大家要看看自己机子。
2.3.3 最后保存退出,在shell 里面键入 ,重启系统。
2.4 添加数据库
如果使用Sonar 默认的数据库H2,则无需配置,如果需要使用其他数据库,包括mysql,
Oracle 等,可以自行上网查询。由于我们的是小项目,所以用Sonar 自带的数据库H2 完
全可以了。
2.5 启动服务
在shell 里面键入 cd $SONAR_HOME,可以直接进入启动目录。在shell 里面键入
./sonar.sh start 启动服务
./sonar.sh stop 停止服务
./sonar.sh restart 重启服务
访问http:\\localhost:9000,如果显示SonarQube 的项目管理界面,表示安装成功。
3 / 6
使用SonarQube Runner 分析源码
预置条件
已安装SonarQube Runner 且环境变量已配置,即sonar-runner 命令可在任意目录下