今天小編就爲大家分享一篇關於spring boot使用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可以很好的檢查出代碼的問題,但是在實際的項目中需要進行裁剪和定製,掃出來的不一定有問題,沒有掃出來也不一定萬事大吉,但是一定程度的代碼規範和質量提高還是很有用處,實際在使用的時候應該根據具體情況進行實施。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。如果你想了解更多相關內容請查看下面相關鏈接