Sonar是一個代碼質量管理系統。它的幫助文檔開篇明義,提出了代碼質量的七宗罪。總結的比較到位。最好仍是一看:java
1. Bug和隱藏Bug(Bugs and Potential Bugs)mysql
2. 違反編碼規範(Coding Standards Breach)git
3. 複製粘貼(Duplications)github
4. 缺少單元測試(Lack of Unit Tests)sql
5. 惡劣的複雜度分佈(Bad Distribution of Complexity)數據庫
6. 意大利麪式設計(Spaghetti Design)瀏覽器
7. 凝視不足或過多(Not Enough or Too Many Comments)maven
首先看一下sonar對安裝環境的需求,見文檔:工具
http://docs.codehaus.org/display/SONAR/Requirementssqlserver
Sonar支持MySQL、Oracle、PostgreSQL、SQL Server等多種數據庫,本文選取MySQL。
參考文檔:http://docs.codehaus.org/display/SONAR/Installing
Sonar啓動前需要數據庫中有特定的username和數據庫。下面爲MySQL的配置腳本。
# https://github.com/SonarSource/sonar-examples/tree/master/scripts/database/mysql
|
本文下載的是SonarQube 3.7.4 LTS。不需要下載其它工具。
改動sonar-3.7.4/conf/sonar.properties文件裏的sonar.jdbc.url、sonar.jdbc.username和sonar.jdbc.password屬性,詳細要參照前面mysqlserver的配置。
本文中設置的值是:
sonar.jdbc.username: sonar
sonar.jdbc.password: sonar
sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
sonar.properties配置文件還可以設置其它項。比方HTTP監聽port,臨時保持默認。
運行sonar-3.7.4/bin/文件夾下指定操做系統的腳本。啓動sonar。
Sonar啓動後:
(1)會鏈接mysqlserver,並在sonar數據庫中創建相關的表格。
(2)啓動一個httpserver,監聽port爲9000,固然這個port號是可以配置的。
固然,Sonar也可以做爲服務安裝到操做系統中,本文再也不描寫敘述。
經過瀏覽器登陸sonarserver,可以對sonar進行配置、安裝插件等。
URL地址默認是http://{sonar_server_ip}:9000。
默認的username和password是admin/admin。
本文保持sonar的默認配置。
可以有多種方法向sonar提交分析任務,本文利用maven。注意sonar 3.7.4僅僅支持maven3.1版本號。
參考文檔:http://docs.codehaus.org/display/SONAR/Installing+and+Configuring+Maven
<profile> <properties> <sonar.jdbc.url>jdbc:mysql://192.168.150.11:3306/sonar? useUnicode=true&characterEncoding=utf8</sonar.jdbc.url> <sonar.jdbc.username>sonar</sonar.jdbc.username> <sonar.jdbc.password>sonar</sonar.jdbc.password> <sonar.host.url>http://192.168.150.11:9000</sonar.host.url> </properties> </profile> </profiles> |
<build> <extensions> <extension> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.24</version> </extension> </extensions> </build> |
參考文檔:http://docs.codehaus.org/display/SONAR/Analyzing+with+Maven
運行下面maven命令:
mvn clean install mvn sonar:sonar |
注意sonar:sonar必須單獨運行。
假設把sonar:sonar和其它target混在一塊兒,比方mvn clean install sonar:sonar,可能致使不可預期的問題。
經過瀏覽器登陸sonarserver,查看分析結果。