白箱掃描工具_Sonarqube_Windows環境版本作業方式
到sonarqube官網
https://www.sonarqube.org/
將壓縮檔解壓
SonarQube 是一款透過 Java 開發的原始碼檢測與品質管理系統,
其架構又細分為Server 與 Client 都是跨平台的。
首先記得電腦要有安裝OpenJDK (或只裝JRE)
Server端的作業
若是Linux 或MacOS就請自行到對應目錄去執行sonar.sh start
sonarqube-9.2.4.50792\bin\linux-x86-64\sonar.sh start
sonarqube-9.2.4.50792\bin\macosx-universal-64\sonar.sh start
而Windows環境則是去執行bat檔
sonarqube-9.2.4.50792\bin\windows-x86-64\StartSonar.bat
這裡執行有跑錯誤資訊
目前電腦上裝的OpenJDK版本1.8過低問題
OK 到9.2版 至少要用到JDK11
可以到github去下載對應jdk msi檔
螢幕左下角 搜尋「檢視進階系統設定」,或是於「本機」右鍵→「內容」→「進階系統設定」,進入「環境變數」
再次執行就可以成功
StartNTService.bat 啟動sonarqube系統服務
StartSonar.bat 命令列啟sonarqube服務(關閉命令列即關閉服務)
StopNTService.bat 停止sonarqube系統服務
用瀏覽器訪問http://localhost:9000,進入sonarqube頁面
預設賬號密碼
帳號:admin/密碼:admin
我在之後更改為
帳號:admin/密碼:admin123
預設儀錶板
接下來要分析C#程式碼,必須借用SonarQube Scanner for MSBuild
Sonar檢測C#程式碼時需要預先編譯,而且C#程式碼必須用MSbuid進行編譯,其中
要求MSBuild在V14.0以上。
SonarScanner for .NET (GNU LGPL 3)
這裡有分成兩包msbuild一個for .net5 , 一個for .net4.6
$install_directory/sonar-scanner-(version)/bin
一樣把SonarQube Scanner for MSBuild
還有MSBuild也要 (vs2019路徑)
加入環境變數中
這裡採用for .net4.6的
在官方提供的指令範例(可能有點簡略一開始看不懂怎麼帶)
.net framework 系列專案 執行掃描指令
1 2 3 | SonarScanner.MSBuild.exe begin /k:"project-key" /d:sonar.login="<token>" MSBuild.exe <path to solution.sln> /t:Rebuild SonarScanner.MSBuild.exe end /d:sonar.login="<token>" |
.net core 系列專案 執行掃描指令
1 2 3 4 5 6 7 8 9 10 11 | dotnet <path to SonarScanner.MSBuild.dll> begin /k:"project-key" /d:sonar.login="<token>" dotnet build <path to solution.sln> dotnet <path to SonarScanner.MSBuild.dll> end /d:sonar.login="<token>" 或者使用 .NET Core Global Tool dotnet tool install --global dotnet-sonarscanner dotnet sonarscanner begin /k:"project-key" /d:sonar.login="<token>" dotnet build <path to solution.sln> dotnet sonarscanner end /d:sonar.login="<token>" |
稍微看官網英文參數介紹
由於我這邊預設沒有token
因此改採用帳號密碼的方式
這裡以.net framework 系列專案 執行掃描指令做示範
切到專案目錄下作執行
1 2 3 4 5 6 7 8 9 10 11 12 | SonarScanner.MSBuild.exe begin /k:"project-key" SonarScanner.MSBuild.exe begin /k:"project-key" /d:sonar.login="<token>" SonarScanner.MSBuild.exe begin /k:"project-key" /d:sonar.login="<username>" /d:sonar.password=<password> SonarScanner.MSBuild.exe begin /k:"puma-prey-main" /d:sonar.login="admin" /d:sonar.password="admin123" MSBuild.exe /t:Rebuild SonarScanner.MSBuild.exe end /d:sonar.login="<token>" SonarScanner.MSBuild.exe end /d:sonar.login="<username>" /d:sonar.password=<password> SonarScanner.MSBuild.exe end /d:sonar.login="admin" /d:sonar.password="admin123" |
而當我們運行完就可以看到Sonarqube網頁儀表板
Projects更新了
Sonarqube 掃描後幫我們不僅分析出漏洞
也把code smell也順帶分析
Ref:
在Windows使用SonarQube + Ms SQL Server 2017 分析 C# 程式碼品質
[Jenkins]持續整合之路(七)程式碼檢查(SonarQube)
安裝 SONARQUBE - 為你的團隊建立軟體品質儀表板
一文搞定 SonarQube 接入 C#(.NET) 程式碼質量分析
Try Out SonarQube
[經驗分享]開源的原始碼檢測系統 - SonarQube
[Security] 利用免費開源資安檢測軟體 SonarQube 檢測 .NET Core 程式碼
[Java] OpenJDK 下載、設定 – ojdkbuild
[Java] Java JDK 下載、安裝、設定
Sonar Scanner for .NET
[實作筆記] 讓 SonarQube 檢查你的代碼
MSBuild 命令列參考
留言
張貼留言