基於SonarQube代碼質量檢查

SonarQube(sonar)是一個開源平臺,用於管理源代碼的質量。 SonarQube不只是一個質量數據報告工具,更是代碼質量管理平臺。 支持java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十幾種編程語言的代碼質量管理與檢測。 SonarQube可以從以下七個維度檢測代碼質量,而作爲開發人員至少需要處理前5種代碼質量問題。


(1) 不遵循代碼標準
SonarQube可以通過PMD,CheckStyle,Findbugs等等代碼規則檢測工具規範代碼編寫。
(2) 潛在的缺陷
SonarQube可以通過PMD,CheckStyle,Findbugs等等代碼規則檢測工具檢 測出潛在的缺陷。
(3) 糟糕的複雜度分佈
文件、類、方法等,如果複雜度過高將難以改變,這會使得開發人員 難以理解它們, 且如果沒有自動化的單元測試,對於程序中的任何組件的改變都將可能導致需要全面的迴歸測試。
(4) 重複
顯然程序中包含大量複製粘貼的代碼是質量低下的,SonarQube可以展示 源碼中重複嚴重的地方。
(5) 註釋不足或者過多
沒有註釋將使代碼可讀性變差,特別是當不可避免地出現人員變動時,程序的可讀性將大幅下降 而過多的註釋又會使得開發人員將精力過多地花費在閱讀註釋上,亦違背初衷。
(6) 缺乏單元測試
SonarQube可以很方便地統計並展示單元測試覆蓋率。
(7) 糟糕的設計
通過SonarQube可以找出循環,展示包與包、類與類之間的相互依賴關係,可以檢測自定義的架構規則 通過SonarQube可以管理第三方的jar包,可以利用LCOM4檢測單個任務規則的應用情況, 檢測耦合。


使用SonarQube進行掃描,需要進行環境配置,具體配置方式參看:

https://my.oschina.net/shuming/blog/2052375

具體掃描,配置。

需要到你要掃描的工程根目錄下,創建文件:sonar-project.properties。

我配置如下(我用到是公司的php工程):

sonar.projectKey=sonar-runner-simple

sonar.projectName=MyProject

sonar.projectVersion=1.0

 

sonar.sources=.

sonar.language=php

 

sonar.sourceEncoding=UTF-8

然後啓動SonarQube之後,打開http://localhost:9000/ .

創建一個新工程,點擊Generate:

然後再點擊continue:

然後進行選擇:

最後的生成的命令,需要在命令行cd到我的php工程路徑,然後執行該命令:

最後就可以把結果,上傳到http://localhost:9000/。

PS:可以在命令行加 "-X" 查看到詳細的掃描信息。但是有時又會報錯:

ERROR: Error during SonarQube Scanner execution

ERROR: Failed to upload report - 500: An error has occurred. Please contact your administrator
解決辦法:修改(或設置)mysql的my.cnf內的max_allowedpacket值,或者直接執行命令:set global max_allowed_packet=1000*1024 *1024 。

然後再重啓SonarQube服務(注意:如果是win系統,需要到任務管理器關閉掉全部java.exe進程) 。

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