SonarQube

在Windows使用SonarQube + Ms SQL Server 2017 分析 C# 程式碼品質

蔡麒聰 2018/12/04 18:58:22
5279

在Windows使用SonarQube + Ms SQL Server 2017 分析 C# 程式碼品質


簡介

介紹SonarQube在Windows系統的安裝、設定與使用

作者

蔡麒聰


一、前言

       在軟體開發的生命週期中,讓產出的程式碼可以維持著高品質也是非常重要的一件事情,例如在有些公司會透過 Code Review,分析程式碼的品質及找出一些疏失問題,但若要用人工一一找出程式碼的潛在問題或安全性隱憂,實在是太花費時間和功夫了,SonarQube是一套Open Source的程式碼品質分析工具,可幫我們對程式碼的品質做更完整的檢查,並找出一些可能的安全性隱憂。

二、前置淮備

  1. 安裝JAVA(JRE8、JDK8)
  2. 資料庫(MS SQL Server 2014、2016、2017)
  3. 瀏覽器(IE11、Microsoft Edge、Mozilla Firefox、Google Chrome,Safari)
  4. SonarQube Scanner for MSBuild   

三、安裝SonarQube

      我們先到官網下載SonarQube,點擊下方連結前往進行下載。
      並解壓縮到我們指定的目錄


修改設定檔 \conf\sonar.properties

      在解壓縮目錄下的 conf 資料夾我們可以找到 sonar.properties 設定檔,在設定檔內我們要調整
sonar.jdbc.username={資料庫連線使用者名稱}
soanr.jdbc.password={資料庫連線使用者密碼}
sonar.jdbc.url=sonar.jdbc.url=jdbc:sqlserver://localhost;databaseName=sonar


設定資料庫

     開啟SQL Serve,建立資料庫sonar,資料庫名稱須與sonar.jdbc.url的databaseName相符合,並且必須設定資料庫定序為Case sensitivity(CS)和Accent sensitivity(AS),如下圖


啟動SonarQube

     打開 Command Line,執行解壓縮目錄下的bin\windows-x86-64\StartSonar.bat,成功後應該可以看到如同下面的畫面
 
     打開瀏覽器,前往 http://localhost:9000,可看到成功啟動SonarQube,如下圖所示,點擊Log in進行登入,帳號:admin,密碼:admin


四、分析程式碼

下載 SonarQube Scanner for MSBuild

      SonarQube 其實可以分為兩種工具,一種是負責執行程式碼分析的 Runner,每個語言都有自己對應的 SonarQube Runner ,而另外一種則是在透過 Runner 分析之後,我們可以透過 SonarQube 的報表網站,觀看軟體的健康檢查報告,發掘是否有潛藏性的危險。
 
     前項操作即為啟動報表網站,接下來要分析C#程式碼,必須借用SonarQube Scanner for MSBuild
     下載後,解壓縮到我們自己指定目錄


設定Path環境變數

     為了等下方便進行分析,我們在 Path 系統環境變數附加 SonarScanner.MSBuild.exe、MSBuild.exe 的路徑,如下圖所示
     
     開啟Command Line,切換目錄到我們要分析的 C# Project,依序輸入下列指令進行分析
 
     SonarScanner.MSBuild.exe begin /k:"project-key"
     MSBuild.exe /t:Rebuild
     SonarScanner.MSBuild.exe end
 
     上述的project-key是在SonarQube中分析專案的名稱,可設為跟C# Project同一名稱,以方便識別。
 
     回到瀏覽器畫面,可看到分析專案的報告
 
 
     點擊專案名稱連結,檢視專案的各項分析報告
 
 
     可任意點擊連結,查看程式bug或漏洞
 
     點擊檔案連結,可查看原始碼,SonarQube會指出有問題的程式碼在那一行,並提出如何進行改善。
 
     SonarQube分析報告有眾多種類,上述只簡略介紹一、二,讀者有興趣,可實際操作,親自體會。
蔡麒聰