SonarQube

SonarQube
https://www.sonarqube.org
Open Source的程式碼分析工具
可分析多25種以上的程式語言,如java,php,python,c#,…

 

支援以下幾種標準

  • CWE (Common Weakness Enumeration)
  • OWASP TOP TEN (Open Web Application Security Project)
  • SANS TOP 25

 

使用以下7個維度分析程式碼品質:

  • Architecture & Design(程式架構)
  • Duplications(冗餘程式)
  • Unit tests(單元測試)
  • Complexity(複雜度)
  • Potential bugs(潛在問題)
  • Coding rules(寫作原則)
  • Comments(註解)

 

refer
http://blog.jason.tools/2017/05/sonarqube-use-experience.html
https://poychang.github.io/sonarqube-csharp/
https://tpu.thinkpower.com.tw/tpu/articleDetails/563

 


使用方式

 

1.環境確認

確認有jdk11或jre11

 

2.下載sonarqube解壓縮後執行啟動指令

ex:
Windows平台
C:sonarqubebinwindows-x86-xxStartSonar.bat

ex:
其他作業系統平台, 以non-root user執行以下
/opt/sonarqube/bin/[OS]/sonar.sh console

 

3.瀏覽器開啟

網址為 http://localhost:9000
帳密分別是admin/admin

 

4.在server端(http://localhost:9000):

1.根據網頁導覽,建立專案
2.新增key(類似專案id)
3.產生token
4.選擇要分析的程式語言
5.根據指示下載該程式語言的scanner
6.導覽會顯示在程式碼所在端要執行的指令和參數

 

5.在程式碼所在端

進入到欲檢查的程式碼目錄後執行server端要求的指令和參數 參數會包含key,token,server位置,程式碼位置,等 ex:
在程式碼所在端:


下載並解壓縮sonar-scanner-cli-4.0.0.1744-windows.zip到c:
scanner位置應該在c:\sonar-scanner-4.0.0.1744-windows\bin\sonar-scanner.bat


假設程式碼目錄在 c:\sourcecodesystwnet
啟用cmd並進入console
c:> cd c:\sourcecodesystwnet

三 執行分析程式
c:\sourcecodesystwnet> c:\sonar-scanner-4.0.0.1744-windows\bin\sonar-scanner.bat -D"sonar.projectKey=systwnet" -D"sonar.sources=." -D"sonar.host.url=http://localhost:9000" -D"sonar.login=766775b0a1b2c69b2306e6dbab8a601b00c15f86"

 

6.完成分析

經過一段時間分析後,結果會顯示在server端上