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端上