SonarQube是什么
Sonar(SonarQube)是一个开源平台,用于管理源代码的质量。Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。支持的语言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex 等。
SonarQube安装过程
- MySql(5.7.18),数据库管理(Navicat for MySQL)
- JDK(1.8.0_131)
- 操作系统(windows 64)
安装及配置过程
- 分别下载sonarqube和sonar-scanner安装包到本地之后解压
- 打开Navicat for MySQL客户端,创建sonar数据库
- 安装JDK
- 进入sonarqube的conf目录下,打开sonar.properties文件,配置相关的mysql连接信息
sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=123456
sonar.sorceEncoding=UTF-8
sonar.search.port=9003
sonar.login=admin
sonar.password=admin
- 进入sonar-scanner的conf目录,打开sonar-scanner.properties,配置相关信息
sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=root
sonar.jdbc.password=root
- 完成上面几步骤后,sonar的基本配置已完成。然后进入sonarqube的bin目录下的windows-x86-64(我的系统是64位),点击StartSonar.bat启动服务
7.在启动过程中,可能会遇到一些问题
- 启动过段时间,窗口自动闪退,可进入sonarqube下的logs目录查看日志信息,并查询出现错误的解决办法。
- 启动失败,可使用快捷键ctrl+shift+esc打开任务管理器,找到java进程,结束此任务。
- 启动成功,则会在sonar数据下生成大量的数据表
- 在浏览器上访问:http://localhost:9000,如能正常访问,则安装成功。登录账户密码:admin/admin。
- 安装Chinese Pack中文语言包,点击安装即可
1)安装成功
2)因版本不对,安装不成功,可以自行下载汉化包,下载完成将插件放到sonarqube\extensions\plugins ,重启sonar即可。 - 配置sonar-scanner环境变量
1)在系统>高级系统设置>环境变量>系统变量的path编辑,增加C:\sonarqube\sonar-scanner\bin\路径,保存退出。
2)启动cmd命令窗口,输入sonar-scanner -v查看sonar-scanner的版本信息。如展示出版本相关信息,则说明环境变量配置成功。 - 分析项目
以上步骤完成后,打开需要进行代码分析的项目根目录,新建sonar-project.properties文件。
输入内容如下:
# 项目标识
sonar.projectKey=8ABDEF2F753DF0668F8B0C6DB235304E
# 项目文件
sonar.projectName=vite-vue3-element-plus
# 项目版本号
sonar.projectVersion=0.0.0
# 项目代码的编码格式
sonar.sourceEndcoding=UTF-8
# 项目的语言
sonar.language=js
# 项目的源代码目录
sonar.sources=src
启动StartSonar.bat服务,在当前项目的根路径下,启动cmd命令窗口,执行命令:sonar-scanner,开始对该项目的代码进行质量检测。如下:
访问http://localhost:9000/, 并进行登录查看代码检测结果,如下:
可在问题窗口查看有代码结果,并进行修改。
总结
以上是基于windows系统搭建的本地代码检测平台,通过sonar去审查项目中的代码质量,可及时发现问题,及时改进,规范自己的代码习惯,提升代码质量,从而提高产品质量。