SonarQube_Getting_Started_Project
根據之前的文章SonarQube_Server與Scanner安裝架設完畢之後,根據頁面的引導可以很快速的進行第一次的Scan
SonarQube提供五種版本控管
或是手動上傳
原始檔案,因想要快速掃描的關係這邊先選擇Manually
創建專案就好
建立第一個Project進行掃描
New Project
輸入專案名稱
專案名稱:這邊建議直接跟GitLab名稱一樣就好,
Project Key:主要用於不知道...
Main branch name:如果是使用GitLab就填寫目前GitLab主要的名稱就好(我們GitLab是使用Master)
選擇程式原始碼的來源,快速掃描本機
的話就選擇Locally
這邊就會決定未來要在哪邊進行Scanner的位置
Locally:選擇這個後續要把最新的專案下載到該SonarQube伺服器並且手動在命令字元下指令進行SonarQube Scanner
With GitLab CI:結合 GitLab Runner,後續SonarQube Scanner就會交由GitLab Runner伺服器進行(取得最新程式碼也是由GitLab Runner進行)
k
建立分析的Token
這邊預設30 Days,但其實為了後續自動化方便,我會偏向設定該專案無期限
或是設定Global Analysis Token
讓所有的專案都使用同一個Token方便管理
SonarQube是使用架設在內網,所以採取偷懶的方式進行。
建立完成後請將Token記錄下來後面就取得不到了。
第一次進行掃描使用.Net Freamwork為例
注意請參考SonarQube_Server與Scanner安裝把Scanner、MSBuile.exe都準備好下面會需要使用到。
DEMO的範例我已經把MSBuild.exe設定為環境變數,是否要設定取決於你自己,在正式環境我會選擇指定絕對路徑進行操作
一切準備就緒後只要跟著頁面的指令一行一行執行即可。
ki
大致上流程如下
宣告專案要進行SonarQube掃描,他會在該專案底下建立.sonarqube
資料夾
結果如下
PS D:\web\ysleip> SonarScanner.MSBuild.exe begin /k:"TEST" /d:sonar.host.url="http://127.0.0.1:9000" /d:sonar.login="sqp_5b5909e4ebaa0e80be07ff24fe619afe9ed730a3"
SonarScanner for MSBuild 5.5.3
Using the .NET Framework version of the Scanner for MSBuild
Pre-processing started.
Preparing working directories...
18:17:27.295 Updating build integration targets...
18:17:28.051 Fetching analysis configuration settings...
18:17:37.267 Provisioning analyzer assemblies for cs...
18:17:37.27 Installing required Roslyn analyzers...
18:17:41.769 Provisioning analyzer assemblies for vbnet...
18:17:41.77 Installing required Roslyn analyzers...
18:17:41.822 Pre-processing succeeded.
使用MSBuild.exe進行專案建置,確保專案無誤。
0 個警告
0 個錯誤
經過時間 00:02:22.29
啟動Scanner進行源碼掃描
執行完指令後 Scanner就會開始進行分析,頁面上也會顯示就靜靜等待吧。
PS D:\web\ysleip> SonarScanner.MSBuild.exe end /d:sonar.login="sqp_5b5909e4ebaa0e80be07ff24fe619afe9ed730a3"
SonarScanner for MSBuild 5.5.3
Using the .NET Framework version of the Scanner for MSBuild
Post-processing started.
.................... 略 ....................
結果
掃描過程中因為是在本機測試,可以觀察到記憶體跟硬碟都有大量的讀取。
後續閱讀
List
from "200-Areas/210-工程師修煉/SonarQube"
where dg-publish = true
sort file.ctime