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,查看分析结果。