程式碼掃描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包就是真正進行程式碼掃面的工具包
下載後解壓至任意目錄即可,這裡直接放到了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