一、Sonar是什麼?

根據我的瞭解,可以說Sonar包含三個部分:

  • SonarQube是一種自動程式碼審查工具,用於檢測程式碼中的錯誤,漏洞和程式碼味道。它可以與您現有的工作流程整合,以實現跨專案分支和提取請求的連續程式碼檢查。其目的是對程式碼庫的質量進行360°透視。 為此,它會定期分析專案的所有原始碼行。SonarQube是儲存分析結果的中心伺服器。

  • SonarLint是一個Sonarl IDE外掛,可以接收和連線SonrarQube對程式碼庫掃描的結果從而通知Developer, SonarLint本身也可以基於一些規則對程式碼IDE中的程式碼進行即時的檢測。

  • SonarScanner是分析並將結果傳送到SonarQube。可以從 zip 檔案執行 SonarScanner,也可以從從 Docker 映象執行 SonarScanner。使用SonarScanner,測試人員不用安裝java開發環境即可完成程式碼的分析。

二、為什麼要使用Sonar?

Sonar是目前主流的自動靜態掃描程式碼的工具。

Sonar (SonarQube)是一個開源平臺,用於管理原始碼的質量。Sonar 不只是一個質量資料報告工具,更是程式碼質量管理平臺。支援15種語言靜態程式碼分析:Java、JavaScript、C#、TypeScript、Kotlin、Ruby、Go、Scala、Flex、Python、PHP、HTML、CSS、XML 和 VB.NET等。

Sonar可以發現語法特徵錯誤、邊界行為特徵錯誤和經驗特徵錯誤這三類“有特徵”的錯誤。能夠以極低的成本發現以下問題:

  • 使用未初始化的變數;

  • 變數在使用前未定義;

  • 變數聲明瞭但未使用;

  • 變數型別不匹配;

  • 部分的記憶體洩漏問題;

  • 空指標引用;

  • 緩衝區溢位;

  • 陣列越界;

  • 不可達的殭屍程式碼;

  • 高的程式碼複雜度;

  • 死迴圈;

  • 大量的重複程式碼塊;

三、Sonarqube環境搭建

1、安裝jdk11

這是前提條件

2、安裝和使用sonarqube

1、下載社群版sonarqube,直接解壓

官網地址:https://www.sonarqube.org/downloads/

2、不自行搭建資料庫,先使用sonarqube自帶的資料庫

需要注意:

內嵌資料庫只能用於測試場景

內嵌資料庫無法擴充套件,也無法升級到新版本的SonarQube,並且不能支援將你的資料遷移至其他資料庫引擎。

3、執行sonar

進入到bin目錄,使用管理員執行

4、訪問http://localhost:9000

5、登入,預設使用者和密碼admin/admin

需要修改密碼

6、新增專案

3、下載和配置SonarScanner

1、下載並解壓縮適用於 Windows 的掃描器:https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/

如果電腦下載特別慢,嘗試使用手機下載,很快就下載完成

2、解壓下載的檔案,將bin目錄新增到%PATH%環境變數中

四、遇到的問題

1、非管理員身份執行sonarqube失敗

在windows系統怎麼簡單就怎麼來吧,不使用命令列執行,直接介面執行。

2、Jdk版本不正確

執行sonarqube出現以下提示,需要使用jkd11