程序員必備!Sonar代碼質量管理工具

Sonar 是一個用於代碼質量管理的開放平臺。經過插件機制,Sonar 能夠集成不一樣的測試工具,代碼分析工具,以及持續集成工具。java

 

Sonar 概述數據庫

Sonar 是一個用於代碼質量管理的開放平臺。經過插件機制,Sonar 能夠集成不一樣的測試工具,代碼分析工具,以及持續集成工具。編程

與持續集成工具(例如 Hudson/Jenkins 等)不一樣,Sonar 並非簡單地把不一樣的代碼檢查工具結果(例如 FindBugs,PMD 等)直接顯示在 Web 頁面上,而是經過不一樣的插件對這些結果進行再加工處理,經過量化的方式度量代碼質量的變化,從而能夠方便地對不一樣規模和種類的工程進行代碼質量管理。瀏覽器

在對其餘工具的支持方面,Sonar 不只提供了對 IDE 的支持,能夠在 Eclipse 和 IntelliJ IDEA 這些工具裏聯機查看結果;同時 Sonar 還對大量的持續集成工具提供了接口支持,能夠很方便地在持續集成中使用 Sonar。tomcat

此外,Sonar 的插件還能夠對 Java 之外的其餘編程語言提供支持,對國際化以及報告文檔化也有良好的支持。服務器

Sonar 安裝maven

Sonar官網下載最新的發行版,下載zip包後解壓到沒有中文名的目錄下,默認集成了jetty容器,能夠直接啓動提供服務,也能夠經過腳本構建爲war包,部署在tomcat容器中。編程語言

bin目錄下選擇相應平臺,腳本啓用。(Windows點擊StartSonar.bat)工具

而後在瀏覽器中訪問:http://localhost:9000/單元測試

Sonar 添加插件

插件添加方式:

  1. 插件的下載地址爲:http://docs.codehaus.org/display/SONAR/Plugin+Library,將下載後的插件上傳到${SONAR_HOME}extensions\plugins目錄下,從新啓動sonar。
  2. 在Sonar控制面板也能夠添加插件

Sonar默認集成了Java Ecosystem插件,該插件是一組插件的合集

  1. Java [sonar-java-plugin]:java源代碼解析,計算指標等
  2. Squid [sonar-squid-java-plugin]:檢查違反Sonar定義規則的代碼
  3. Checkstyle [sonar-checkstyle-plugin]:使用CheckStyle檢查違反統一代碼編寫風格的代碼
  4. FindBugs [sonar-findbugs-plugin]:使用FindBugs檢查違反規則的缺陷代碼
  5. PMD [sonar-pmd-plugin]:使用pmd檢查違反規則的代碼
  6. Surefire [sonar-surefire-plugin]:使用Surefire執行單元測試
  7. Cobertura [sonar-cobertura-plugin]:使用Cobertura獲取代碼覆蓋率
  8. JaCoCo [sonar-jacoco-plugin]:使用JaCOCO獲取代碼覆蓋率

Sonar 集成項目

提供Maven項目的集成,其餘結構的項目暫不清楚。

進入項目根目錄下,先編譯安裝,而後利用maven集成的sonar插件發佈。

  1. mvn clean install
  2. mvn sonar:sonar

Maven 插件會自動把所需數據(如單元測試結果、靜態檢測結果等)上傳到 Sonar 服務器上,須要說明的是,關於 Sonar 的配置並不在每一個工程的 pom.xml 文件裏,而是在 Maven 的配置文件 settings.xml 文件裏,具體配置以下:

  1. <profiles
  2.     <profile
  3.         <id>sonar</id
  4.         <activation
  5.             <activeByDefault>true</activeByDefault
  6.         </activation
  7.         <properties
  8.             <!-- optional URL to server. Default value is http://localhost:9000 --> 
  9.             <sonar.host.url>http://localhost:9000/</sonar.host.url
  10.         </properties
  11.     </profile
  12.  </profiles

集成發佈成功:

Sonar 數據庫

Sonar默認使用h2文本數據庫,數據庫鏈接的配置在 conf目錄下的 sonar.properties文件 或者在項目發佈時經過maven配置參數覆蓋

Sonar 漢化

  1. 下載http://repository.codehaus.org/org/codehaus/sonar-plugins/l10n/sonar-l10n-zh-plugin/1.2/sonar-l10n-zh-plugin-1.2.jar 
  2. 把下載的壓縮包放到sanar安裝目錄下的/extensions/plugins 中 
  3. 重啓Sonar server 

 

結束語

Sonar 爲代碼的質量管理提供了一個平臺,對傳統的代碼靜態檢測如 PMD、FindBugs 等工具進行整合,能夠說是目前最強大的代碼質量管理工具之一。

原文連接:http://my.oschina.net/u/1264515/blog/177862

相關文章
相關標籤/搜索