1. 程式人生 > >Spring基礎:快速入門spring boot(9):使用sonarqube來檢查技術債務

Spring基礎:快速入門spring boot(9):使用sonarqube來檢查技術債務

在這裡插入圖片描述

作為程式碼質量檢查的流行工具,比如Sonarqube能夠檢查程式碼的“七宗罪”,跟程式碼結合起來能夠更好地提高程式碼的質量,讓我們來看一下,剛剛寫的Springboot2的HelloWorld的程式碼有什麼“罪”。

Sonarqube

Sonarqube可以使用docker版本快速搭建,可以參看一下Easypack整理的映象,具體使用可以參看如下連結,這裡不再贅述:

環境假定

本文使用到的sonarqube為本機32003可以訪問到的服務。

掃描方式

可以使用sonar-scanner或者mvn sonar:sonar的方式對程式碼進行掃描,因為這裡不是sonarqube的展開,只是解釋如何與之進行集合,這篇文章使用更為便利的方式即mvn sonar:sonar。

使用命令:mvn sonar:sonar -Dsonar.host.url=http://localhost:32003
如果使用預設的9000埠,-D可以不必使用,雖然這裡都可以指定,為了避免初入者進坑太多,這裡還是儘可能的一切從簡。

結果確認

在這裡插入圖片描述

掃描結果確認

在這裡插入圖片描述
確認之後發現,有一個Bugs&Vulnerabilities。我們來確認一下相關詳細資訊:
在這裡插入圖片描述
然而,這是一個誤報,詳細可參看:

對應措施

因為此行是一個誤報,所以直接在改行新增//NOSONAR即可除外。另外為了驗證其效果,我們新增一行:String msg = “Unused Message variable”;

再執行&結果確認

使用命令:mvn sonar:sonar -Dsonar.host.url=http://localhost:32003

可以看到,Bugs已經沒有了,但是因為增加的一行,出現了兩個Code Smells的問題。
在這裡插入圖片描述

具體確認詳細資訊:
在這裡插入圖片描述
因為Sonar認為此行程式碼沒有被使用到,所以是無用的語句應該刪除。當然這裡的分析,即使沒有使用springboot的框架,只要是通過maven進行整合的方式都是可以的。

程式碼覆蓋率

但是需要注意到,這裡沒有程式碼覆蓋率,在下篇文章中將介紹如何在Spring boot的專案中通過Jacoco與之結合來引入程式碼覆蓋率的確認。

總結

使用SonarQube可以很好的檢查出程式碼的問題,但是在實際的專案中需要進行裁剪和定製,掃出來的不一定有問題,沒有掃出來也不一定萬事大吉,但是一定程度的程式碼規範和質量提高還是很有用處,實際在使用的時候應該根據具體情況進行實施。