代碼質量管理的開放平臺:Sonar

jopen 11年前發布 | 50K 次閱讀 Sonar 代碼分析/審查/優化

Sonar 概述

Sonar 是一個用于代碼質量管理的開放平臺。通過插件機制,Sonar 可以集成不同的測試工具,代碼分析工具,以及持續集成工具。

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

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

此外,Sonar 的插件還可以對 Java 以外的其他編程語言提供支持,對國際化以及報告文檔化也有良好的支持。

Sonar 安裝

Sonar官網下載最新的發行版,下載zip包后解壓到沒有中文名的目錄下,默認集成了jetty容器,可以直接啟動提供服務,也可以通過腳本構建為war包,部署在tomcat容器中。

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

代碼質量管理的開放平臺:Sonar

然后在瀏覽器中訪問:http://localhost:9000/

代碼質量管理的開放平臺:Sonar


Sonar 添加插件

   插件添加方式:

  1. 插件的下載地址為:http://docs.codehaus.org/display/SONAR/Plugin+Library將下載后的插件上傳到${SONAR_HOME}extensions\plugins目錄下,重新啟動sonar。
  2. 在Sonar控制面板也可以添加插件
  3. </ol>

    代碼質量管理的開放平臺: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獲取代碼覆蓋率
    9. </ol>


      Sonar 集成項目

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

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

      1. mvn clean install
      2. mvn sonar:sonar
      3. </ol>

        代碼質量管理的開放平臺: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 數據庫

        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 
        4. </ol>

          結束語

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

          來自:http://my.oschina.net/u/1264515/blog/177862

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!