Sonar 是一个开源的质量管理平台,专注于从项目到类方法的持续的分析和测量技术质量。
依赖:
maven-2.0.7+
JDK5+
注意:在使用低于2.0.4版本的Maven时报下面的错误:
java.lang.NoSuchMethodError: org.apache.maven.profiles.DefaultProfileManager.<init>(Lorg/codehaus/plexus/Plexu sContainer;Lorg/apache/maven/settings/Settings;Ljava/util/Properties;)V
安装:
1、到官方网站下载Sonar的压缩包,解压到任意目录,运行bin\windows-x86-32\StartSonar.bat(这里以Windows平台为例)。但是你首先要执行下面的配置过程。
2、首次运行会创建数据库,Sonar默认使用嵌入式的Derby数据库,如果我们要迁移到Mysql上,我们要这样做:
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
grant all privileges on sonar.* to 'sonar'@'localhost' identified by 'sonar';
flush privileges;
这里创建了sonar/sonar,并授权访问sonar库。
3、修改\conf\sonar.properties文件:
sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8 sonar.jdbc.driverClassName: com.mysql.jdbc.Driver sonar.jdbc.validationQuery: select 1
4、与maven整合,修改settings.xml,添加下面代码:
<profile> <id>sonar</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <sonar.jdbc.url> jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf-8 </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>
5、 通过步骤4 sonar已经与你的maven整合,然后你需要这样maven你的项目(前提是重新启动了sonar,并创建了数据库):
mvn org.codehaus.sonar:sonar-maven-plugin:1.5.1:sonar -Dsonar.skipInstall=true
6、访问:http://localhost:9000。(这里的端口也可以在sonar.properties中设置)
下图是一个应用场景:
从上面的应用案例中我们看到,Sonar提供了对代码行、注释行、代码覆盖率、复杂度、代码规则、违例、项目视图等内容的统计和图形化报表显示功能。同时Sonar还提供了测算和违例的钻取、项目不同版本间指标差异的图形化比较、代码覆盖率云的形象化描述等。同时Sonar也提供了灵活的配置功能,包括对系统的配置和对规则的配置。
Sonar还提供了从maven提取SCM、JIRA信息和与CC集成的功能 。
Sonar架构图: