sonar入門
一、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,直接解壓
官網地址://www.sonarqube.org/downloads/
2、不自行搭建資料庫,先使用sonarqube自帶的資料庫
需要注意:
內嵌資料庫只能用於測試場景
內嵌資料庫無法擴展,也無法升級到新版本的SonarQube,並且不能支援將你的數據遷移至其他資料庫引擎。
3、運行sonar
進入到bin目錄,使用管理員運行
4、訪問//localhost:9000
5、登錄,默認用戶和密碼admin/admin
需要修改密碼
6、添加項目
3、下載和配置SonarScanner
1、下載並解壓縮適用於 Windows 的掃描儀://docs.sonarqube.org/latest/analysis/scan/sonarscanner/
如果電腦下載特別慢,嘗試使用手機下載,很快就下載完成
2、解壓下載的文件,將bin目錄添加到%PATH%環境變數中
四、遇到的問題
1、非管理員身份運行sonarqube失敗
在windows系統怎麼簡單就怎麼來吧,不使用命令行運行,直接介面運行。
2、Jdk版本不正確
運行sonarqube出現以下提示,需要使用jkd11