背景

1、   虚拟机CentOS release 7.2

2、   sonarqube-6.2

3、   sonar-scanner-2.8

 

一、  sonarqube-6.2的安装

1、   sonarqube下载地址https://www.sonarqube.org/downloads/

这里下载的是sonarqube-6.2,下载完成之后解压下载的zip压缩包。会产生下图所示的文件目录。

sonarqube 缺少java sonarqube部署_sonarqube 缺少java

2、   配置sonarqube

进入conf文件夹,打开sonar.properties进行配置。Sonarqube默认ip为localhost,默认端口为9000。如果想修改,可以将sonar.properties文件中

sonar.web.host=localhost

sonar.web.port=9000

的注释去掉,并修改ip和port,如果使用默认,不去掉注释也是可以的。

单纯做测试时可以直接使用sonarqube默认的Embedded Database,不需要安装其他数据库。这里使用的就是默认的Embedded Database。

3、   Sonarqube启动。

首先启动sonarqube服务,进入到bin目录下,选择相应linux系统,这里是linux-x86-64,进入到inux-x86-64目录,执行./sonar.sh start启动sonarqube。

同时可以去logs文件中查看日志,确认启动正常。

正常启动后会在inux-x86-64目录下产生一个SonarQube.pid文件。

sonarqube 缺少java sonarqube部署_properties文件_02

启动完成之后,打开浏览器输入http://localhost:9000,会看到如下画面:

sonarqube 缺少java sonarqube部署_properties文件_03

点击右上角的Login按钮,登陆sonarqube,默认用户名和密码为admin/admin。

登陆后画面如下:

sonarqube 缺少java sonarqube部署_properties文件_04

二、  sonar-scanner-2.8的安装

如果要对代码进行检查,必须要安装sonar-scanner。

1、    到sonarqube官网下载sonar-scanner-2.8,当然可以使用其他版本,但是要注意版本支持问题,详情去https://www.sonarqube.org/官网查看。

下载完成之后解压sonar-scanner-2.8.zip,产生下图所示的文件目录:

sonarqube 缺少java sonarqube部署_properties文件_05

如果sonarqube都是默认设置,这里也不需要配置,如果sonarqube有做设置,这里在conf目录下的sonar-scanner.properties文件中做对应的设置。

2、   创建sonar-project.properties。

对代码进行分析,必须要创建sonar-project.properties文件,执行sonar-scanner时,会对根据sonar-project.properties文件进行搜索,该文件要放在与项目(如下图中src)同一目录下。

例:举例创建sonar-project.properties文件。

sonarqube 缺少java sonarqube部署_SonarQube安装收册_06

设定参数具体意义参考:

http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner

 

3、   进入到bin目下,可以看到很多可执行文件,如下图:

sonarqube 缺少java sonarqube部署_SonarQube安装收册_07

在linux系统下,绿色可执行,这里执行sonar-scanner就可以了。

为了方便sonar-scanner执行,可将其设置为环境变量,投入下列命令:

exportSONAR_RUNNER_HOME=/root/zfl/sonar-scanner-2.8

exportPATH=$SONAR_RUNNER_HOME/bin:$PATH

目录根据自己存放的位置进行选择。

4、   执行sonar-scanner。

进入到存放sonar-project.properties文件的目录,执行sonar-scanner,执行结果显示EXECUTION SUCCESS,则解析成功。

此时登陆http://localhost:9000,会看到解析project的信息在网页上显示。

sonarqube 缺少java sonarqube部署_SonarQube安装收册_08


Quality Gate:

http://docs.sonarqube.org/display/SONAR/Quality+Gates

A quality gate is the best way to enforce a qualitypolicy in your organization. It's there to answer ONE question : can I delivermy project to production today or not ?

Issues:

http://docs.sonarqube.org/display/SONAR/Issues

 

BLOCKER:Bug with a high probability to impact the behavior of theapplication in production: memory leak, unclosed JDBC connection, .... The codeMUST be immediately fixed.

CRITICAL:Either a bug with a low probability to impact the behavior ofthe application in production or an issue which represents a security flaw:empty catch block, SQL injection, ... The code MUST be immediatelyreviewed. 

MAJOR:Quality flaw which can highly impact the developerproductivity: uncovered piece of code, duplicated blocks, unused parameters,...

MINOR:Quality flaw which can slightly impact the developerproductivity: lines should not be too long, "switch" statementsshould have at least 3 cases, ...

INFO:Neither a bug nor a quality flaw, just a finding.

 

 

总结:一般Quality Gate显示passed,则说明代码质量是OK的,如果显示Failed,进入project中,查看有哪些问题,根据显示进行修改。