轉載自:https://cloud.tencent.com/developer/article/1010599
1、Issues Report Plugins 介紹
使用 Issues Report Plugins 插件可以為我們生成一份 HTML 格式的問題報告,對於開發人員來說是很有好處的,我們可以在改動代碼后 Push 代碼到倉庫前,檢測一下代碼質量,生成問題報告,提醒自己避免提交有明顯問題的代碼到倉庫中,當然也可以去 SonarQube Web 上查看詳細情況。
2、Issues Report Plugins 使用
Issues Report Plugins 插件的使用很簡單,只需要 Maven 命令行指定參數執行即可。注意:SonarQube > 5.1 版本,該插件已經過時了,不過我們還是直接可以使用,免安裝。5.1 版本以后由 SonarLint 替代該插件。
mvn sonar:sonar
-Dsonar.analysis.mode=preview # 設置 mode,默認為preview
-Dsonar.issuesReport.lightModeOnly=true # 設置是否只生成新增問題的報告
-Dsonar.issuesReport.html.enable=true # 設置生成 HTML 格式的報告
-Dsonar.issuesReport.html.name=xxxx # 設置生成 HTML 報告的文件名字
-Dsonar.issuesReport.html.location=/xx/xx # 設置生成 HTML 報告的文件存儲路徑
-Dsonar.issuesReport.console.enable=true # 設置報告輸出到控制台
當設置-Dsonar.issuesReport.html.enable=true
時,該插件默認會生成兩份 HTML 報告,一份是包含所有問題的報告 ,一份為只包含新增問題的報告 ,除非設置了-Dsonar.issuesReport.lightModeOnly=true
,則只生成包含新問題的報告。默認生成報告的路徑為<maven_project>/target/sonar/issues-report/
,使用-Dsonar.issuesReport.html.location
可修改生成路徑。報告默認文件名為 issues-report.html (全部問題報告),issues-report-light.html(新增問題報告),使用-Dsonar.issuesReport.html.name=xxxx
可修改生成的文件名稱。當設置-Dsonar.issuesReport.console.enable=true
時,則不會生成HTML文件報告,會將檢測結果打印到控制台輸出。
示例:
$ mvn sonar:sonar -Dsonar.analysis.mode=preview -Dsonar.issuesReport.html.enable=true
...
[INFO] HTML Issues Report generated: /Users/wanyang3/Documents/hwy/IdeaProjects/mavenDemo/target/sonar/issues-report/issues-report.html
[INFO] Light HTML Issues Report generated: /Users/wanyang3/Documents/hwy/IdeaProjects/mavenDemo/target/sonar/issues-report/issues-report-light.html
...
$ mvn sonar:sonar -Dsonar.analysis.mode=preview -Dsonar.issuesReport.console.enable=true
...
[INFO]
------------- Issues Report -------------
+2 issues
+1 critical
+1 major
-------------------------------------------
...
3、SonarLint For IntelliJ IDEA 安裝及配置
SonarLint 是為了替代上邊 Issues Report Plugins 插件,並且更方便的集成到我們日常的開發工具里面去。SonarLint For IntelliJ IDEA 就是專門為 IDEA 工具提供的插件,它可以為開發人員時刻返回新的 Bug 以及其他質量問題,並且很直觀顯示在工具上邊。現在支持的語言有 Java、 JavaScript 、PHP。
SonarLint 插件安裝也很簡單,點擊 IntelliJ -> Plugins -> Browse Repositories -> 輸入 SonarLint search -> install 等待下載安裝完畢,點擊 restart 重啟 IDEA即可。
設置 SonarLint 全局配置。點擊 IntelliJ -> Other Settings -> SonarLint General Settings -> Add 彈出框添加一個 New SonarQube Server,這里我們添加之前本地搭建的 SonarQube 服務 URL:http://127.0.0.1:9000,服務別名為:my_sonarqube,下一步配置認證,可以設置 Token 或者 Login / Password,配置完成后點擊 Update Binding,更新綁定信息,最后點擊 Apply 即可。注意:認證 Token 可以去 SonarQube Web 上生成一個認證 Token 或者用用戶名密碼登錄均可。
設置 SonarLint 項目配置,點擊 IntelliJ -> Other Settings -> SonarLint Project Settings -> Bind to Server,選擇剛我們配置的全局配置 my_sonarqube,在 SonarQube project 項目列表里面選擇對應的項目,最后點擊 Apply 即可。注意:這里的項目列表是從配置的 SonarQube 服務上拉取下來的項目,如果沒有加載,可以點擊 Update project list 重新加載。
以上配置完成后,就可以愉快的使用 SonarLint 插件了,這里我們以 mavenDemo 項目為例,故意寫一些垃圾代碼,看下檢測結果吧。
參考資料