sonar入門

一、Sonar是什麼?

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

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

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

  • SonarScanner是分析並將結果發送到SonarQube。可以從 zip 文件運行 SonarScanner,也可以從從 Docker 鏡像運行 SonarScanner。使用SonarScanner,測試人員不用安裝java開發環境即可完成程式碼的分析。

image

二、為什麼要使用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/

image

image

image

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

需要注意:
內嵌資料庫只能用於測試場景
內嵌資料庫無法擴展,也無法升級到新版本的SonarQube,並且不能支援將你的數據遷移至其他資料庫引擎。

3、運行sonar
進入到bin目錄,使用管理員運行
image

image

4、訪問//localhost:9000
image

5、登錄,默認用戶和密碼admin/admin
image

需要修改密碼
image

6、添加項目
image

image

image

image

image

3、下載和配置SonarScanner

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

image

image

image

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

2、解壓下載的文件,將bin目錄添加到%PATH%環境變數中
image

image

四、遇到的問題

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

image

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

2、Jdk版本不正確

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

image

Tags: