您的位置:首页 > 其它

sonar学习及简单使用

2016-04-13 16:31 225 查看
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&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上看结果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: