前言:
sonar有3部分组成:
1、服务端:显示分析结果和sonar相关配置,即sonarqube
2、客户端:对项目运行源代码进行运算和分析,即sonarscanner
3、数据库:存储sonar配置和代码分析结果的数据库
一、准备安装包及必要环境配置
1、安装jdk1.8,maven
2、安装mysql,参考:https://www.cnblogs.com/wulixia/p/12852311.html
3、sonarqube下载,地址:https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.6.zip
4、sonar scanner下载,地址:https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.3.0.1492-windows.zip
5、sonarqube汉化包下载
版本对应参考:https://github.com/xuhuisheng/sonar-l10n-zh
下载地址:https://github.com/xuhuisheng/sonar-l10n-zh/tags
注意:在sonarqube web上直接选择安装汉化版本,会报错,因为和sonar版本不兼容,下载指定的jar包到extensionsplugins目录下重启即可
二、SonarQube安装及配置
SonarQube 支持大多数主流关系型数据库(例如 Microsoft SQL Server, MySQL, Oracle, PostgreSQL 等),默认使用H2数据库,可以直接运行启动,此处配置MySQL数据库。
1、mysql创建数据库
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
2、创建用户并给用户分配权限
CREATE USER 'sonar' IDENTIFIED BY 'sonar'; GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar'; GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar'; FLUSH PRIVILEGES;
3、解压sonar的安装包sonarqube-7.6到指定的目录
切换到conf目录下,对sonar.properties文件进行配置:
切换到sonarqube-7.6inwindows-x86-64目录下运行启动命令
看到如下的*** is up表示启动成功
启动成功后,浏览器访问http://localhost:9000,打开界面
(上图所示已经汉化并且登录创建过一个项目)默认使用 用户名:admin 密码:admin 可以登录管理员账号。
下载好中文插件,并移动到sonarqube-7.6extensionsplugins中,再重启sonar即可生效
重启sonarqube方法:
先使用命令:tasklist | findstr "java" 找到全部的java进程
再强制杀死所有的进程:taskkill /PID 6508 /f(6508 为 tasklist 命令查询出来的进程 PID)
三、sonar-scanner安装配置
解压sonar-scanner-cli-3.3.0.1492-windows到指定目录
切换到conf目录下,对sonar-scanner.properties进行配置
sonar.host.url=http://localhost:9000 sonar.sorceEncoding=UTF-8 sonar.jdbc.username=sonar sonar.jdbc.password=sonar sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false useConfigs=maxPerformance sonar.sourceEncoding=UTF-8
配置环境变量
cmd进入,输入sonar-scanner -v 出现以下信息表示安装成功
至此sonar-scanner安装成功!
四、使用sonar-scanner分析项目
1、点击‘+’号创建一个要分析的项目
2、输入项目标识,并点击‘设置’按钮
3、点击‘创建’,创建一个令牌
4、点击‘继续’按钮
5、选择项目的开发语言以及操作系统
6、下载安装sonar-scanner扫描客户端(见步骤三),已经设置过了这一步就可以忽略
7、在你的项目目录下执行扫描命令(直接复制扫描命令即可)
sonar-scanner.bat -D"sonar.projectKey=test_01" -D"sonar.sources=." -D"sonar.host.url=http://localhost:9000" -D"sonar.login=78e02061dc032e860b862f1******************"
8、分析成功后,登录http://localhost:9000,可以看到分析结果:
-----------------------------------------------------------------------------------------------------------
另外还有一种扫描代码的方法:
1、在项目根目录下新建一个sonar-project.properties文件,输入以下内容:
# 项目key sonar.projectKey=datacheck_test # 项目名字 sonar.projectName=datacheck_test # 项目版本 sonar.projectVersion=1.0 # 要分析的源码的目录 多个目录用英文逗号隔开 sonar.sources=. # 新版的需要加上binaries这个属性,否则无法解析,我这里是Java项目,所以部署后有对应的classes文件夹 #sonar.java.binaries=WebRoot/WEB-INF/classes # 语言 #sonar.language=python # 编码 sonar.sourceEncoding=UTF-8 # 指定分支 sonar.branch.name=branch
2、启动sonarqube
3、在cmd命令中输入sonar-runner,项目会开始进行分析
4、打开http://localhost:9000/,可以看到项目分析进度,分析成功后会自动生成报告,点击对应的BUG就可以查看代码分析和解决方法了