1. 程式人生 > 其它 >SonarScanner有效檢查程式碼質量

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 伺服器搭建。