一. 下载
sonarqube下载地址:https://www.sonarqube.org/downloads/
sonar-scanner下载地址:https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
二. 安装
安装前确保电脑已经安装jdk1.8 +,以及MySQL >=5.6 && < 8.0,所以, mysql版本过高的话,要降级,当然sonar支持的数据库除了mysql还有其他类型的数据库,具体请参照官方文档的介绍。
2.1 安装SonarQube web server
1. 将下载好的sonarqube压缩包解压,解压后的目录如下:
2 到解压目录的bin\windows-x86-64(我的是64位的)目录下,双击StartSonar.bat文件 启动SonarQube
3 到浏览器界面,输入 : http://localhost:9000,能够进入界面证明安装成功。
2.2 安装数据库
1. 我这里安装的MySQL5.6,具体安装请看我的博客中有关MySQL5.6的安装。
2. 为sonar创建一个数据库
create database 数据库名;
3. 创建sonarqube用户并进行授权
CREATE USER 'username'@'host' IDENTIFIED BY 'password'; // 创建用户并设置密码
// username 为创建的用户名
host为对应的主机地址,本地就是localhost
password为设置的密码
GRANT ALL ON *.* TO '用户名'@'localhost'; //对用户进行授权操作
4. 修改SonarQube配置文件,添加Mysql相关配置
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
sonar.jdbc.username=用户名 // 刚刚创建的sonarQube用户
sonar.jdbc.password=密码 // 创建用户对应的密码
sonar.sorceEncoding=UTF-8 // 设置编码格式为UTF-8
2.3 重启服务端
1. 退出 SonarQube 服务端
在之前弹出的cmd窗口执行ctrl + c,
弹出来的提示选择Y,退出SonarQube服务
2. 双击StartSonar.bat文件, 重新启动SonarQube
这次因为要进行数据库的初始化操作,所以需要的时间可能稍微久一点
3. 启动成功后,浏览器输入 : http://localhost:9000 进入界面
4. 登录
点击界面右上角的登录按钮, 进行登录 :
初始的账户名 : admin
初始的密码 : admin
如上 , SonarQube的安装已经OK!
附 : 一些关键配置的修改,如 主机地址,context,端口号等:
通常情况下使用默认的配置即可!
文件 /conf/sonar.properties
#sonar.web.host=0.0.0.0
#sonar.web.context=
#sonar.web.port=9000
三. 使用
3.1. 安装必要的插件 (最重要的是汉化包)
点击导航栏的 config, 选择应用市场搜索Chinese pack, 点击install进行安装 安装成功后, 重启SonarQube ! 如下图 : 进入到了很友好的中文界面!
到这里,Sonar服务就安装成功了,下面就是怎样利用sonar来分析你所写的代码了。
3.2 使用sonar-scanner进行静态代码扫描
1 将下载的压缩包解压缩到任意目录。解压后的目录如下:
2 打开Sonar Scanner根目录下的/conf/sonar-scanner.properties文件,配置如下:
3 配置环境变量
新建系统变量:SONAR_SCANNER_HOME=Sonar Scanner根目录;
修改系统变量path,新增%SONAR_SCANNER_HOME%\bin(不新建SONAR_SCANNER_HOME直接新增path亦可);
4 打开cmd面板,输入如下图,则表示环境变量设置成功:
5 开始使用项目进行分析代码,在这里我是使用一个已经编译好的完整项目来分析的,且项目能够正常运行的,友情提示,为了保险起见,可以新建一个目录,然后将该项目拷贝此目录下,然后在项目根目录下新建sonar-project.properties文件,内容如下:
6 设置完后,打开cmd面板,进入项目根目录下,然后输入“sonar-scanner”命令,执行代码分析:
分析成功的界面为:
当然,若分析代码失败,可以输入sonar-scanner -X,进而找到为什么分析失败,这就好比项目开发中的debug模式。
7 然后打开http://localhost:9000 (SonarQube服务器),输入账号密码,即可查看代码分析结果,如图:
三. 下面是我在执行sonar-scanner的过程中遇到的问题,仅供参考
1 解决sonar scanner扫描报错Please provide compiled classes of your project with sonar.java.binaries property问题:
只需在项目的sonar-project.properties文件中添加如下语句:
sonar.java.binaries=项目路径/target/classes,如上面第五点中最后一行。
以上只介绍了利用sonar-scanner进行静态代码分析,后面将会介绍使用maven的方式进行分析和在开发工具里面集成sonar进行分析代码