一、Sonar介紹
Sonar是一個用於管理代碼質量的開源平台,Sonar提供了代碼分析、檢測工具
Sonar可以幫助軟體開發人員發現代碼的重複、潛在的錯誤、安全問題等
同時Sonar還支持多種編程語言的Code Analysis,如Java、C++、C#、PHP等
二、Sonar插件
Sonar插件就是用來擴展Sonar功能的插件。Sonar插件可以自定義代碼規則、代碼分析邏輯等一系列功能
Sonar插件可以通過官網的插件庫進行下載和安裝,也可以通過maven、gradle等構建工具進行安裝
Sonar插件可以為Sonar增加新的排版、報告、度量等功能,能夠使得Sonar的能力更強大
三、常用Sonar插件
FindBugs
FindBugs是一款非常優秀的Java代碼分析工具,可以幫助開發人員發現Java代碼中的潛在問題
<plugin> <groupId>org.codehaus.sonar-plugins</groupId> <artifactId>findbugs</artifactId> <version>3.3</version> </plugin>
PMD
PMD是一款可以檢測出Java代碼中潛在問題的工具,主要關注代碼規範和最佳實踐的問題
<plugin> <groupId>org.codehaus.sonar-plugins</groupId> <artifactId>pmd</artifactId> <version>2.5</version> </plugin>
CheckStyle
CheckStyle是一款可以幫助開發人員約定Java代碼風格的工具,CheckStyle提供一套代碼風格規則
<plugin> <groupId>org.codehaus.sonar.plugins</groupId> <artifactId>checkstyle</artifactId> <version>3.1.1</version> </plugin>
sonar-findbugs-plugin
sonar-findbugs-plugin是一款通過Plugin方式為Sonar增加FindBugs的檢測和報告功能
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>sonar-findbugs-plugin</artifactId> <version>${findbugs.maven.plugin.version}</version> </plugin>
sonar-pmd-plugin
sonar-pmd-plugin是一款通過Plugin方式為Sonar增加PMD的檢測和報告功能
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>sonar-pmd-plugin</artifactId> <version>${pmd.version}</version> </plugin>
sonar-checkstyle-plugin
sonar-checkstyle-plugin是一款通過Plugin方式為Sonar增加CheckStyle的檢測和報告功能
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>sonar-checkstyle-plugin</artifactId> <version>2.17</version> </plugin>
四、Sonar scan過程
Sonar scan是一種代碼掃描功能,通過編寫腳本的方式,將代碼自動提交到Sonar伺服器進行分析
通常情況下,Sonar scan調用Sonar Runner或者Maven Sonar Plugin,將代碼提交到伺服器進行代碼分析
以下是Maven Sonar Plugin提交代碼到Sonar伺服器的示例:
mvn sonar:sonar -Dsonar.host.url=http://localhost:9000 -Dsonar.login=admin -Dsonar.password=admin
五、Sonar分析結果
Sonar分析結果會以報表的形式顯示在Sonar管理平台上,常見顯示項有Code Quality、Code Security、Code Coverage等
以下是Sonar中代碼質量Dashboard的圖表:
<iframe src="http://localhost:8080/dashboard/index/1" width="100%" height="800"></iframe>
六、Sonar插件開發
Sonar插件開發需要採用Java語言,並且需要遵循一定的約定,同時需要在Sonar管理平台上註冊
Sonar插件的開發步驟如下:
1、定義插件,包括命令行選項、節點、規則等;
2、定義插件實現,實現自定義的規則等功能;
3、安裝插件到Sonar伺服器中;
4、使用插件;
七、總結
Sonar插件是用來擴展Sonar功能的插件,可以通過自定義代碼規則、代碼分析邏輯等等,讓Sonar的能力更加強大
常用的Sonar插件有FindBugs、PMD、CheckStyle等,Sonar scan可以將代碼自動提交到Sonar伺服器進行分析
Sonar分析結果以報表的形式顯示在Sonar管理平台上,Sonar插件開發需要採用Java語言,並且需要遵循一定的約定
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/301133.html