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 添加插件
插件添加方式:
- 插件的下載地址爲:http://docs.codehaus.org/display/SONAR/Plugin+Library,將下載後的插件上傳到${SONAR_HOME}extensions\plugins目錄下,從新啓動sonar。
- 在Sonar控制面板也能夠添加插件
Sonar默認集成了Java Ecosystem插件,該插件是一組插件的合集
- Java [sonar-java-plugin]:java源代碼解析,計算指標等
- Squid [sonar-squid-java-plugin]:檢查違反Sonar定義規則的代碼
- Checkstyle [sonar-checkstyle-plugin]:使用CheckStyle檢查違反統一代碼編寫風格的代碼
- FindBugs [sonar-findbugs-plugin]:使用FindBugs檢查違反規則的缺陷代碼
- PMD [sonar-pmd-plugin]:使用pmd檢查違反規則的代碼
- Surefire [sonar-surefire-plugin]:使用Surefire執行單元測試
- Cobertura [sonar-cobertura-plugin]:使用Cobertura獲取代碼覆蓋率
- JaCoCo [sonar-jacoco-plugin]:使用JaCOCO獲取代碼覆蓋率
Sonar 集成項目
提供Maven項目的集成,其餘結構的項目暫不清楚。
進入項目根目錄下,先編譯安裝,而後利用maven集成的sonar插件發佈。
- mvn clean install
- mvn sonar:sonar
Maven 插件會自動把所需數據(如單元測試結果、靜態檢測結果等)上傳到 Sonar 服務器上,須要說明的是,關於 Sonar 的配置並不在每一個工程的 pom.xml 文件裏,而是在 Maven 的配置文件 settings.xml 文件裏,具體配置以下:
- <profiles>
- <profile>
- <id>sonar</id>
- <activation>
- <activeByDefault>true</activeByDefault>
- </activation>
- <properties>
- <!-- optional URL to server. Default value is http://localhost:9000 -->
- <sonar.host.url>http://localhost:9000/</sonar.host.url>
- </properties>
- </profile>
- </profiles>
集成發佈成功:
Sonar 數據庫
Sonar默認使用h2文本數據庫,數據庫鏈接的配置在 conf目錄下的 sonar.properties文件 或者在項目發佈時經過maven配置參數覆蓋
Sonar 漢化
- 下載http://repository.codehaus.org/org/codehaus/sonar-plugins/l10n/sonar-l10n-zh-plugin/1.2/sonar-l10n-zh-plugin-1.2.jar
- 把下載的壓縮包放到sanar安裝目錄下的/extensions/plugins 中
- 重啓Sonar server
結束語
Sonar 爲代碼的質量管理提供了一個平臺,對傳統的代碼靜態檢測如 PMD、FindBugs 等工具進行整合,能夠說是目前最強大的代碼質量管理工具之一。