一、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