簡介
Sonar (SonarQube)是一個開源平臺,用於管理原始碼的質量。
Sonar 不只是一個質量資料包告工具,更是程式碼質量管理平臺。
支援Java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十幾種程式語言的程式碼質量管理與檢測。
Sonar可以從以下七個維度檢測程式碼質量,而作為開發人員至少需要處理前5種程式碼質量問題。
- 不遵循程式碼標準
sonar可以通過PMD,CheckStyle,Findbugs等等程式碼規則檢測工具規範程式碼編寫。 - 潛在的缺陷
sonar可以通過PMD,CheckStyle,Findbugs等等程式碼規則檢測工具檢 測出潛在的缺陷。 - 糟糕的複雜度分佈
檔案、類、方法等,如果複雜度過高將難以改變,這會使得開發人員 難以理解它們, 且如果沒有自動化的單元測試,對於程式中的任何元件的改變都將可能導致需要全面的迴歸測試。 - 重複
顯然程式中包含大量複製貼上的程式碼是質量低下的,sonar可以展示 原始碼中重複嚴重的地方。 - 註釋不足或者過多
沒有註釋將使程式碼可讀性變差,特別是當不可避免地出現人員變動 時,程式的可讀性將大幅下降 而過多的註釋又會使得開發人員將精力過多地花費在閱讀註釋上,亦違背初衷。 - 缺乏單元測試
sonar可以很方便地統計並展示單元測試覆蓋率。 - 糟糕的設計
通過sonar可以找出迴圈,展示包與包、類與類之間的相互依賴關係,可以檢測自定義的架構規則 通過sonar可以管理第三方的jar包,可以利用LCOM4檢測單個任務規則的應用情況, 檢測藕合。
安裝
SonarQube 版本很多,對JDK版本要求也不同,這裡以7.3 Community版本為例。
基於CentOS系統安裝
環境資訊
工具/環境 | 版本 |
---|---|
CentOS | 7.4 |
SonarQube | 7.3 |
MySql | 5.7 |
JDK | 1.8 |
- 官網下載對應作業系統的安裝包,官網下載連結:https://www.sonarqube.org/downloads/
- 安裝
注意事項:
- SonarQube安裝使用依賴JDK,需提前安裝配置好JDK相關資訊
- SonarQube安裝使用依賴資料庫和ElasticSearch,故需要提前準備好資料庫和ElasticSearch相關資源
注意:SonarQube 7.3 版本要求MySQL版本不能低於5.6且提前建立好名為sonar的資料庫
- 啟動SonarQube和ElasticSearch不可使用root賬戶,故需要提前建立好新的使用者組和使用者,被賦予SonarQube資料夾可操作許可權
第一步: 上傳並解壓安裝包至任意工作目錄,這裡以/home為例
第二步:新建使用者組sonar和使用者sonar並分配sonar目錄可操作性許可權
第三步: 切換至sonar使用者啟動SonarQube
啟動過程中可進入logs目錄檢視相關服務啟動日誌,啟動成功之後瀏覽器訪問:http://IP:9000 即可
第四步: 安裝必要外掛
因官網下載安裝的系統介面語言為英文,且不可匯出pdf報告,簡單介紹如下安裝外掛
上傳外掛包到sonarqube安裝目錄下的extensions/plugins/目錄下,然後重啟系統即可。
第五步: 登入系統
登入Web系統,確實賬號密碼為admin/admin
使用
結合Maven如何利用Sonar分析程式碼
在工程根目錄執行如下命令分析程式碼質量
mvn sonar:sonar -Dsonar.host.url=http://180.8.2.99:9000 -Dsonar.login=c3e9b746e26f0fef387a0e8eb4ccfc0d6c6a94b0
注意:最後面的login引數可在Web系統頁面獲取
- 進入建立token頁面
- 手動生成一個token
- 通過maven命令分析程式碼質量
- 分析結束,在登入Web系統檢視及下載分析報告
結語
歡迎關注微信公眾號『碼仔zonE』,專注於分享Java、雲端計算相關內容,包括SpringBoot、SpringCloud、微服務、Docker、Kubernetes、Python等領域相關技術乾貨,期待與您相遇!