1. 代码质量七宗罪
Sonar是一个代码质量管理系统。它的帮助文档开篇明义,提出了代码质量的七宗罪。总结的比較到位。最好还是一看:
1. Bug和隐藏Bug()
2. 违反编码规范()
3. 复制粘贴()
4. 缺乏单元測试()
5. 恶劣的复杂度分布()
6. 意大利面式设计()
7. 凝视不足或过多()
2. 安装Sonarserver
首先看一下sonar对安装环境的需求,见文档:
http://docs.codehaus.org/display/SONAR/Requirements
2.1. 安装JRE
2.2. 安装数据库
Sonar支持MySQL、Oracle、PostgreSQL、SQL Server等多种数据库,本文选取MySQL。
參考文档:http://docs.codehaus.org/display/SONAR/Installing
2.3. 配置数据库
Sonar启动前须要数据库中有特定的username和数据库。下面为MySQL的配置脚本。
#
|
2.4. 下载并配置sonar
本文下载的是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,临时保持默认。
2.5. 启动sonarserver
运行sonar-3.7.4/bin/文件夹下指定操作系统的脚本。启动sonar。
Sonar启动后:
(1)会连接mysqlserver,并在sonar数据库中建立相关的表格。
(2)启动一个httpserver,监听port为9000,当然这个port号是能够配置的。
当然,Sonar也能够作为服务安装到操作系统中,本文不再描写叙述。
2.6. 登录server
通过浏览器登录sonarserver,能够对sonar进行配置、安装插件等。
URL地址默认是http://{sonar_server_ip}:9000。
默认的username和password是admin/admin。
本文保持sonar的默认配置。
3. 利用maven向sonarserver提交分析任务
能够有多种方法向sonar提交分析任务,本文利用maven。注意sonar 3.7.4仅仅支持maven3.1版本号。
3.1. 改动maven的settings.xml文件。
參考文档: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> |
3.2. 改动pom.xml文件,以添加mysql驱动
<build> <extensions> <extension> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.24</version> </extension> </extensions> </build> |
3.3. 提交分析任务
參考文档: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,可能导致不可预期的问题。
3.4. 查看分析结果
通过浏览器登录sonarserver,查看分析结果。