SonarScanner有效檢查程式碼質量
1. sonarQube與SonarScanner的關係
sonar 是一個用於程式碼質量管理的開放平臺,支援Windows、Linux、Mac。通過外掛機制,Sonar 可以整合不同的測試工具,程式碼分析工具以及持續整合工具,與持續整合工具不同,Sonar 並不是簡單地把不同的程式碼檢查工具結果直接顯示在 WEB頁 面上,而是通過不同的外掛對這些結果進行再加工處理,通過量化的方式度量程式碼質量的變化,從而可以方便的不同規模和種類的工程進行程式碼質量管理。
2. 安裝SonarScanner
在安裝 SonarScanner 之前,需要先安裝 jdk(至少 1.8 及以上版本)。
-
下載SonarScanner
https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
下載完後,是一個 zip 壓縮包。直接解壓到目標目錄即可,這裡解壓到
C:\jenkins\sonar-scanner-4.7
-
配置環境變數
SONAR_SCANNER_HOME
SONAR_SCANNER_HOME=C:\jenkins\sonar-scanner-4.7
PATH
PATH=%PATH%;C:\jenkins\sonar-scanner-4.7\bin
開啟cmd命令列,使用如下命令可以檢查是否安裝成功
sonar-scanner --version
3. SonarScanner配置檔案說明
找到 conf/sonar-scanner.properties
配置檔案。大致內容如下
#Configure here general information about the environment, such as SonarQube server connection details for example
#No information about specific project should appear here
#----- Default SonarQube server
#sonar.host.url=http://localhost:9000
#----- Default source code encoding
#sonar.sourceEncoding=UTF-8
其中 sonar.host.url 配置項是 SonarQube 伺服器的地址,根據具體情況配置。先安裝如下配置
sonar.host.url=http://127.0.0.1:9000
sonar.sourceEncoding=UTF-8
即 SonarQube 伺服器安裝在本機,埠是 9000。
4. 專案配置
假設需要掃描的專案是
C:\jenkins\SpringBoot_v2
掃描其中的 src 目錄
在 C:\jenkins\SpringBoot_v2
新增一個 sonar-project.properties
檔案。配置檔案模板如下:
# must be unique in a given SonarQube instance
sonar.projectKey=my:project
# --- optional properties ---
# defaults to project key
#sonar.projectName=My project
# defaults to 'not provided'
#sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Defaults to .
#sonar.sources=.
# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8
配置項說明:
-
sonar.projectKey:在 sonarQube 伺服器上的例項鍵名;必須是唯一的,不可重複相同
-
sonar.projectName:在 sonarQube 伺服器上的專案名稱
-
sonar.projectVersion:專案版本號,可以不指定
-
sonar.sources:指定原始碼目錄,可以指定掃描目錄。填寫sonar-project.properties檔案所在目錄的相對路徑
如圖,sonar-project.properties 檔案在 C:\jenkins\SpringBoot_v2
想要掃描 src 目錄,就直接填寫
sonar.sources=src
-
sonar.sourceEncoding:編碼格式指定
配置如下
sonar.projectKey=SpringBoot_v2:1.0
sonar.projectName=SpringBoot_v2
sonar.projectVersion=1.0
sonar.sources=src
sonar.sourceEncoding=UTF-8
5. 進行掃描
如果安裝了 sonarQube 伺服器就可以進行靜態程式碼掃描了。目前沒有安裝的情況下,進入目錄
C:\jenkins\SpringBoot_v2
在 cmd 命令列執行命令
sonar-scanner
出現以下錯誤
下篇講解 sonarQube 伺服器搭建。