sonar學習及簡單使用

sonar簡介:
sonar是一個用於代碼質量管理的開源平臺,用於管理源碼質量。目前通過插件的形式,可以支持包括java,c#,c,c++,PL/SQL,js,groovy等二十多種變成語言的代碼質量管理與檢測。

sonar代碼檢測維度:

複雜度分佈:文件、類或者方法等,如果複雜度過高將難以改變,這會是開發人員難以理解它們;

重複:檢查程序中包含大量複製粘貼的代碼,sonar可以展示源碼中重複嚴重的地方;

缺乏單元測試:sonat可以方便的統計並展示單元測試的覆蓋率;

沒有代碼標準:可以自己定製代碼標準來規範代碼編寫;

沒有足夠的或者過多的註釋;

潛在的bug;

糟糕的設計:通過sonar可以找出循環,展示包與包、類與類之間的相互依賴關係,可以檢測自定義的架構規則,可以管理第三方的jar包等等。

有興趣可以看看Spaghetti Design:http://docs.codehaus.org/display/SONAR/Spaghetti+Design

sonarqube安裝:

首先,你需要有java環境;

其次,數據庫:sonarqube較高版本使用的h2,不需要自己建庫,但是版本不高的使用的mysql數據庫,所以,你需要確定你本地已經安裝mysql數據庫。

sonarqube下載:http://www.sonarqube.org/downloads/,目前最新是sonarqube 5.4
如果你覺得看英文不太舒服,可以下載中文補丁包:http://docs.codehaus.org/display/SONAR/Chinese+Pack

接下來說說較低版本的sonarqube的相關配置,主要是數據庫部分,較高版本不需要配置數據庫。

數據庫配置:
進入數據庫命令並執行以下指令:

mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; 
mysql> CREATE USER 'sonar' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
mysql> FLUSH PRIVILEGES;

想看sonar相關配置,可以去sonarqube文件下的conf/sonar.properties查看

sonar使用:
只介紹免安裝的sonarqube的使用方法,安裝比較麻煩,我比較懶。

去上面sonarqube的下載地址下載,解壓文件直接可以使用,較低版本需要修改conf/sonar.properties數據庫相關配置,將原來sonar.jdbc這個爲前綴的被註釋掉的配置取消註釋。

其實,sonar與maven配置使用,需要在setting.xml中假如如下代碼:

<profile>

    <id>sonar</id>

    <activation>

        <activeByDefault>true</activeByDefault>

    </activation>

    <properties>

        <sonar.jdbc.url>

            jdbc:mysql://localhost:3306/sonar?useUnicode=true&amp;characterEncoding=utf8

        </sonar.jdbc.url>

        <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>

        <sonar.jdbc.username>sonar</sonar.jdbc.username>

        <sonar.jdbc.password>sonar</sonar.jdbc.password>

        <sonar.host.url>http://localhost:9000</sonar.host.url>

    </properties>

</profile>

配置完以上的東西就可以啓動sonar並使用了,很簡單吧。

sonar啓動:去sonarqube/bin/os系統(mac/windows/linux)/StartSonar.bat,啓動。有問題可以查看相關sonarqube啓動日誌:sonarqube/logs/sonar.log

啓動之後,可以去看sonarqube ui了,訪問http://localhost:9000

啓動之後就該用sonar來檢查代碼了,到某maven工程下執行mvn sonar:sonar,build success之後可以去sonarqube ui上看結果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章