Windows下.Net項目SonarQube掃描

一、SonarQube簡介

SonarQube(曾用名Sonar(聲納))是一個優秀的開源代碼測試分析工具,支持超過25+種編程語言,對.Net Core當然也支持的。

二、安裝

環境安裝包括:Java-JDK,SonarQube、sonar-scanner for MsBuild

1.1 Java-JDK安裝

Sonar是一款基於JAVA開發的工具,選擇合適的windows位數版本下載,安裝JDK的過程在此不再敘述,建議安裝好後配置需要JAVA_HOME的環境變量,配置環境變量看這裏:cmd執行環境配置
下載地址:JDK Download

1.2 SonarQube安裝

下載地址:SonarQube Download
這裏下載社區版Community
在這裏插入圖片描述
壓縮包解壓到喜歡的地方
在這裏插入圖片描述
進入bin目錄,再進入windows-x86-64
在這裏插入圖片描述
運行StartSnoar.bat,完成SonarQube安裝
在這裏插入圖片描述
如果JDK安裝和環境變量正常,SonarQube安裝成功如下
在這裏插入圖片描述
瀏覽器打開SonarQube配置默認串口9000的網站:http://localhost:9000/about,登錄賬號密碼默認爲admin,原本Projects Analyzedwe爲0,我這裏做了兩個項目掃描。在這裏插入圖片描述
想配置串口可通過conf>sonar.properties配置,去掉#,串口改成其他數字
在這裏插入圖片描述

1.3 Sonar-Scanner for MsBuild安裝

下載地址:Sonar-Scanner for MsBuild Download
壓縮包解壓,配置解壓地址的環境變量即可,環境變量配置不再贅述。
在這裏插入圖片描述
確認電腦是否安裝了MSBuild.exe,它是Visual Studio的編譯工具,目錄是:Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\amd64,需要配置它的環境變量。

三、選擇性配置

選擇性配置:數據庫配置My SQL、設置SonarQube配置文件sonar.properties、設置Sonar-Scanner for MsBuild配置文件SonarQube.Analysis.xml

3.1 數據庫配置

這裏配置My SQL,如不配置,SonarQube會默認使用自帶的存儲,不必擔心
打開My SQL,執行以下命令

CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; 
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
FLUSH PRIVILEGES;

3.2 設置SonarQube配置文件

數據庫的登錄名和密碼這裏爲sonar,SonarQube路徑找到sonar.properties替換內容,其中sonar.jbc.url是mysql數據庫的連接字符串。

sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

3.3 設置Sonar-Scanner for MsBuild配置文件

如果修改了關於服務器URL、USER、PASSWORD等和關聯數據庫,需要修改SonarQube.Analysis.xml文件,要修改的地方只是關於sonarQube服務器的一些配置,,修改如下:

<?xml version="1.0" encoding="utf-8" ?>
<SonarQubeAnalysisProperties  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.sonarsource.com/msbuild/integration/2015/1">

  <Property Name="sonar.host.url">http://localhost:9000</Property>
  <Property Name="sonar.login">admin</Property>
  <Property Name="sonar.password">admin</Property>

  <!-- Required only for versions of SonarQube prior to 5.2 -->
  <Property Name="sonar.jdbc.url">jdbc:mysql://localhost:3306/sonar?useUnicode=true;characterEncoding=utf8;rewriteBatchedStatements=true;useConfigs=maxPerformance;useSSL=false</Property>
  <Property Name="sonar.jdbc.username">sonar</Property>
  <Property Name="sonar.jdbc.password">sonar</Property>
</SonarQubeAnalysisProperties>

四、執行掃描

CMD進入C#項目所在的根目錄,逐行執行以下三條命令。

MSBuild.SonarQube.Runner.exe begin /k:"項目鍵值" /n:"項目名" /v:"1.0"
MSBuild.exe /t:Rebuild
MSBuild.SonarQube.Runner.exe end

參數說明:

/key(簡寫k):對應projectKey即項目的唯一代碼,如兩套源代碼使用同一個projectKey那掃描的結果將混在一起,所以一個項目需要有一個單獨的projectKey

/name(簡寫n):對應projectName即項目的名稱,爲項目的一個顯示的名稱,建立使用完整的項目名稱

/version(簡寫v):對應projectVersion即項目的版本,項目在不同的時期版本也是不一樣的,如果方便,可以在sonarQube的服務器中查看到不同的版本代碼其中問題的變化
查看分析結果:
在這裏插入圖片描述

參考

以上爲個人整理總結的知識,如有遺漏或錯誤歡迎留言指出、點評,如要引用,請寫引用說明,未經允許謝絕轉載。
[1]: https://www.cnblogs.com/CoderAyu/p/9416376.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章