一、sonar下載安裝
下載地址:https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-6.7.5.zip
下載完成之后,解壓,目錄結(jié)構(gòu)如下:

sonarqube目錄結(jié)構(gòu)
可以看到bin目錄下有各種不同操作系統(tǒng)文件夾,里面放的是sonarqube在不同操作系統(tǒng)中的啟動(dòng)腳本。我用的是Mac,進(jìn)入macosx-universal-64目錄,執(zhí)行./sonar.sh start命令,即可啟動(dòng)sonarqube。關(guān)閉使用./sonar.sh stop命令。
默認(rèn)情況下,啟動(dòng)sonarqube使用的是其內(nèi)嵌的數(shù)據(jù)庫(kù),這樣后面進(jìn)行sonarqube版本升級(jí)的時(shí)候,無(wú)法對(duì)數(shù)據(jù)進(jìn)行備份,所以我們可以配置成自己的數(shù)據(jù)庫(kù)。具體配置方式如下:
1、進(jìn)入 sonarqube-6.7.5/conf目錄,會(huì)看到sonar.properties配置文件和wrapper.conf文件
2、修改sonar.properties配置文件,添加數(shù)據(jù)庫(kù)配置。sonar.properties配置文件中,已經(jīng)幫我們?cè)O(shè)置好了各種數(shù)據(jù)庫(kù)連接,我們只要放開(kāi)注釋就好。
sonar.jdbc.username=root
sonar.jdbc.password=123456
#用戶登錄sonarqube的用戶名
sonar.login=admin
#用戶登錄sonarqube的密碼
sonar.password=admin
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
3、在數(shù)據(jù)庫(kù)中新建一個(gè)sonar數(shù)據(jù)庫(kù),編碼格式設(shè)置為UTF-8
4、重新啟動(dòng)sonarqube
5、用瀏覽器訪問(wèn) http://localhost:9000,進(jìn)入sonarqube頁(yè)面
二、sonar-scanner下載安裝
下載地址:
https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.2.0.1227-macosx.zip
下載完成之后,解壓,目錄結(jié)構(gòu)如下:

sonar-scanner目錄結(jié)構(gòu)
修改conf目錄下的sonar-scanner.properties文件,添加如下配置:
sonar.jdbc.username=root
sonar.jdbc.password=123456
#sonarqube配置的數(shù)據(jù)庫(kù)
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
#sonarqube地址
sonar.host.url=http://localhost:9000
配置sonar-scanner的環(huán)境變量,Mac配置如下所示:
SONAR_RUNNER_HOME=/Users/linbo/Desktop/project/sonar-scanner-3.2.0.1227-macosx
export SONAR_RUNNER_HOME
export PATH=$PATH:$SONAR_RUNNER_HOME/bin
環(huán)境變量配置成功標(biāo)志:
在終端輸入sonar-scanner,打印如下信息
INFO: Scanner configuration file: /Users/linbo/Desktop/project/sonar-scanner-3.2.0.1227-macosx/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarQube Scanner 3.2.0.1227
INFO: Java 1.8.0_121 Oracle Corporation (64-bit)
INFO: Mac OS X 10.13.2 x86_64
三、使用
進(jìn)入項(xiàng)目根目錄下,創(chuàng)建sonar-project.properties文件,如果項(xiàng)目根目錄名為X,則向sonar-project.properties文件中添加如下內(nèi)容:
# must be unique in a given SonarQube instance
sonar.projectKey=X
# this is the name displayed in the SonarQube UI
sonar.projectName=X
sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# Since SonarQube 4.2, this property is optional if sonar.modules is set.
# If not set, SonarQube starts looking for source code from the directory containing
# the sonar-project.properties file.
sonar.sources=src
sonar.java.binaries=target/classes
# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8
進(jìn)入項(xiàng)目根目錄,執(zhí)行 sonar-scanner命令,執(zhí)行成功之后,訪問(wèn)http://localhost:9000/projects,可看到如下頁(yè)面

通過(guò)sonar,我們可以找出代碼中存在的bug和安全隱患,提升代碼的質(zhì)量。