SonarQube® is an automatic code review tool to detect bugs, vulnerabilities and code smells in your code. It can integrate with your existing workflow to enable continuous code inspection across your project branches and pull requests.
Sonar可以从7个维度检查代码质量,通过插件的形式可以支持包括java、C#、C/C++,PL/SQL,Cobol,JS等20多种编程语言的代码质量管理与检测。
7个维度是:复杂度过高、重复率过高、单元测试覆盖率、代码编写规范性、代码可读性、潜在bug、架构设计。
本文按以下顺序整理了个人在本地(win7)使用SQ的过程:
SonarQube安装——修改配置——SQ汉化——下载配置插件sonar-scanner——扫描、分析
一、SQ下载与安装
下载SonarQube
前置条件:
1、已安装JAVA环境
2、已安装支持的数据库(本文使用内置数据库,无需安装)
下载SonarQube:SQ官网
注意事项:
下载和安装SQ之前,先看各版本的环境要求(我安装7.9版本时安装失败,因为我本机的jdk是1.8,最高只能安装7.8版本的SQ)
因为我是用来本地试用的,所以下载“Community Edition”版本;
下载安装包后,解压到你喜欢的目录下,在cmd中执行 bin\windows-x86-64\StartSonar.bat
当日志末尾出现以下信息时,表示SQ启动成功:
在本地浏览器输入http://localhost:9000即可访问SQ的web页面,已经默认内置了管理员账号:admin/admin
安装汉化包
汉化以后,SQ的web页面内容将以中文显示。有2种方式(安装后重启SQ服务即可):
方法1:在线安装插件
在浏览器登录SQ,可以在线搜索安装对应版本的chinese插件
方法2:外部下载后安装
下载汉化包:SQ汉化包下载地址
Latest version-》Releases-》选择需要下载的版本;
将下载好的jar包放到入 extensions\plugins 目录下;
注意:
汉化包和SQ版本要一一对应(如下表)
安装SonarQube Scanner
SonarQube Scanner 就是真正进行代码扫描的工具包。
SonarQube Scanner下载:在 SQ官方文档 搜索“Analyzing with SonarQube Scanner”,进入SonarScanner介绍文档 下载所需的版本
下载后,按里面的指南安装即可。大致如下:
1、将scanner包放在你喜欢的目录下($install_directory)
2、修改sonar服务的全局设置:$install_directory/conf/sonar-scanner.properties(安装在本地的话则无需修改)
3、将 $install_directory/bin 添加到环境变量PATH(一般是用户变量;若添加失败可尝试重启电脑)
4、验证是否安装成功:sonar-scanner.bat -h
二、使用SQ分析源码
1、在将要扫描分析的源码项目的根目录下创建配置文件sonar-project.properties
# 当前项目实例的唯一表示
sonar.projectKey=streamstatus_sail
# 显示在sonarqube 界面上的项目名称
sonar.projectName=streamstatus_sail
sonar.projectVersion=1.0
# 相对于当前配置文件目录 下的源代码目录 不管什么平台路径分隔符只能用/不能使用\
sonar.sources=src/test/java
# 源代码的字符集
#sonar.sourceEncoding=UTF-8
sonar.java.binaries=E:/Program Files(x86)/Java/workspace/streamstatus_sail/target/classes
注意:若配置文件中没有最后一行(即 sonar.java.binaries 的配置),扫描分析时会出错,报org.sonar.java.AnalysisException: Please provide compiled classes of your project with sonar.java.binaries property 错误
2、在cmd进入待扫描项目的目录,执行命令:sonar-scanner
3、扫描完成后,在SQ的web平台即可看到新增的项目及详细的扫描结果
至此,完成了Sonar的本地安装与使用~
参考文档:
http://www.sonar.org.cn/install/2414.html https://www.cnblogs.com/tiaoshuidenong/p/10142840.html https://blog.csdn.net/liaomin416100569/article/details/79230610 https://www.cnblogs.com/DoJavaByHeart/p/8253065.html