1. 程式人生 > 其它 >程式碼掃描tool sonar

程式碼掃描tool sonar

程式碼檢查工具 Sonar 安裝&使用

本文主要說明Sonar的安裝方式並附上依賴安裝包,本文目標只實現本地搭建測試的Sonar環境,以及本地的測試專案的非定製化掃描

本機測試環境:Win10-X64,.vs2017

依賴包:

1.SDK Java的東東

2.sonarqube靜態程式碼檢查工具,B/S

3.sonar-scanner-msbuild 真正的程式碼掃面工具

Soanr的程式碼檢測的實現機制,就是通過客戶端的工具對程式碼進行掃描,然後傳送到 sonarqube,然後進行結果報告檢視

開始安裝:

  1.首先安裝SDK,安裝完成之後,配置相應的path環境變數,開啟cmd輸入java,如下圖代表安裝成功:

  2.安裝Sonar

下載Sonar ,下載地址 :https://www.sonarqube.org/downloads/

解壓下載包之後,執行bin\windows-x86-64\StartSonar.bat

如上圖,代表啟動成功,瀏覽器輸入:http://localhost:9000/ 即可訪問,已經預設內建了管理員賬號:admin / admin

3.配置中文包

如何開啟配置中文包呢?

安裝之後需要重啟才能生效

如何強制停止sonar服務呢? 開啟工作管理員,關閉 Java程序

4.安裝包 sonar-scanner-msbuilld

canner包就是真正進行程式碼掃面的工具包

https://github.com/SonarSource-VisualStudio/sonar-scanner-msbuild/releases/download/2.2/sonar-scanner-msbuild-2.2.0.24.zip

下載後解壓至任意目錄即可,這裡直接放到了c:\sonar

開始使用

1.新建專案

填寫專案的關鍵資訊即可,選擇專案開發語言

2.掃描專案三部曲

這裡的三步曲就是sonar新建專案中的最後步驟的掃描教程,分為三步

1.配置環境變數,也就是下載的Sonar-Canner-Msbuild 中 SonarScanner.MSBuild.exe的位置

2.進行專案解決方案所在的目錄,也就是 sln 檔案所在目錄,開啟cmd命令 執行如下命令,下面的命令是根據建立專案時生成的需要複製出來

a.SonarScanner.MSBuild.exe begin /k:"Mytest" /d:sonar.host.url="http://localhost:9000" /d:sonar.login="d8fb95b33c46b1a755e9f93ca0ee62e7bb36591b"

b.MsBuild.exe /t:Rebuild

c.SonarScanner.MSBuild.exe end /d:sonar.login="d8fb95b33c46b1a755e9f93ca0ee62e7bb36591b"

執行效果如下:

如果MsBuild.exe /t:Rebuild 報錯,需要解決專案中的問題,這是編譯報錯,下圖為編譯成功,且報告已經上傳到SonarQube ,可以到 http://localhost:9000 檢視具體報告

3.檢視專案掃描報告

檢視報告

這裡提供一個批處理,配合上述的放入c:\sonar,使用如下命令即可一部完成程式碼分析並上報, 新建sonar.bat檔案,copy如下命令,將soanr.bat放入專案sln目錄中,雙擊執行即可

echo off

c:\sonar\SonarScanner.MSBuild.exe begin /k:"專案名稱需要替換" /d:sonar.host.url="http://localhost:9000" /d:sonar.login="專案Key,建立專案時生成,需要複製"

::編譯程式碼 set "msbuildPath=" set "msbuildPath14=%ProgramFiles(x86)%\MSBuild\14.0\Bin\MSBuild.exe" set "msbuildPath15=%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\msbuild.exe" if exist "%msbuildPath14%" set "msbuildPath=%msbuildPath14%" if exist "%msbuildPath15%" set "msbuildPath=%msbuildPath15%" if "%msbuildPath%" == "" goto nomsbuild "%msbuildPath%" /t:Rebuild c:\sonar\SonarScanner.MSBuild.exe end /d:sonar.login="d8fb95b33c46b1a755e9f93ca0ee62e7bb36591b" echo 掃描完成 pause :nomsbuild echo 沒有找到MSBUILD pause :exit