手把手教你SonarQube入門安裝與使用
簡介
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 |
- 官網下載對應操作系統的安裝包,官網下載鏈接://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目錄查看相關服務啟動日誌,啟動成功之後瀏覽器訪問://IP:9000 即可
第四步: 安裝必要插件
因官網下載安裝的系統界面語言為英文,且不可導出pdf報告,簡單介紹如下安裝插件
上傳插件包到sonarqube安裝目錄下的extensions/plugins/目錄下,然後重啟系統即可。
第五步: 登錄系統
登錄Web系統,確實賬號密碼為admin/admin
使用
結合Maven如何利用Sonar分析代碼
在工程根目錄執行如下命令分析代碼質量
mvn sonar:sonar -Dsonar.host.url=//180.8.2.99:9000 -Dsonar.login=c3e9b746e26f0fef387a0e8eb4ccfc0d6c6a94b0
注意:最後面的login參數可在Web系統頁面獲取
- 進入創建token頁面
- 手動生成一個token
- 通過maven命令分析代碼質量
- 分析結束,在登錄Web系統查看及下載分析報告
結語
歡迎關注微信公眾號『碼仔zonE』,專註於分享Java、雲計算相關內容,包括SpringBoot、SpringCloud、微服務、Docker、Kubernetes、Python等領域相關技術乾貨,期待與您相遇!