`

Sonar技术调研

阅读更多

1.SonarQube是什么

 

SonarQube 是一个用于代码质量管理的开源平台,用于管理源代码的质量。 通过插件形式,可以支持包括 java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等等二十几种编程语言的代码质量管理与检测。Sonar可以从以下七个维度检测代码质量,而作为开发人员至少需要处理前5种代码质量问题。

2.特性

 .不遵循代码标准

sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。

 .潜在的缺陷

sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷.

 

 .糟糕的复杂度分布

文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。

   .重复

显然程序中包含大量复制粘贴的代码是质量低下的,sonar可以展示 源码中重复严重的地方。

  .注释不足或者过多

没有注释将使代码可读性变差,特别是当不可避免地出现人员变动 时,程序的可读性将大幅下降 而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。

 .缺乏单元测试

sonar可以很方便地统计并展示单元测试覆盖

 . 糟糕的设计

通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则 通过sonar可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况, 检测耦合。

3.安装

3.1 环境要求

     a).JDK

     环境变量的设置:

     JAVA_HOME=D:\Program Files\Java\jdk1.7.0_67\

     PATH=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

 

     CLASSPATH=%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

3.2 sonar安装

     作为一个代码分析平台,sonar主要由一下3部分构成:

     a.一个数据库:存放配置信息和分析结果信息;(mysql)

     b.一个web服务器:发布应用,在线浏览、配置分析(sonarqube-4.5.4)

     c.一个客户端:执行源代码分析(sonar-runner-2.4)

3.2 数据库安装

sonar支持的数据库类型有apache derby,h2,sql server,mysql.orcale.postgreSQL等多种数据库,如果只做测试可以使用sonar自带的h2,或derby。他们不需要任何安装。

    如果使用其他数据库,仅仅需要创建一个数据库或表空间,提供sonar增删该查数据库权限的账号即可。表和索引将在sonar第一次运行的时候创建。

   在这里我们使用的是mysql数据库。创建语句如下:

CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; 

CREATE USER 'sonar' IDENTIFIED BY 'sonar';

GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';

GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';

FLUSH PRIVILEGES;

 3.3 安装及配置sonar

在http://www.sonarsource.org/downloads/下 下载相关应用解压即可。(最新6.0)

安装服务器端 sonarqube-4.5.4

在sonarqube解压包下编辑conf/sonar.properties文件,该文件中所有注释掉的数据库连接模板都是支持的,只需要去掉注释更改为自己的数据库连接即可。同时将默认的自带数据库连接注释去掉。

  一般需要配置一下属性:

 sonar.jdbc.url:数据库连接地址

 sonar.jdbc,driver:驱动类

 sonar.jdbc.user: 数据库用户名

 

 sonar.jdbc.password:密码



 

如果使用orcale数据库,那么将orcale驱动包放到sonarqube-6.0\extensions\jdbc-driver \oracle文件夹下即可,其他数据库的驱动包已经放到默认的路径下。

2.启动sonarqube

    在E:\sonar\sonarqube-6.0\sonarqube-6.0\bin\windows-x86-64文件下运行StartSonar.bat文件即可。



 启动成功后在浏览器地址栏输入http://localhost:9000即可访问snoarQube.



 

 3.修改snoar端口

   sonar应用默认监听9000端口。通过http://localhost:9000访问

   可以在 conf/sonar.properties文件中更改:

   sonar.web.host=0.0.0.0

   sonar.web.port=9000

   sonar.web.context=/sonar

1.2.2.1 sonar客户端 sonar-runner

    1.sonar-runner安装过程

     a.将下载包解压到一个本地路径下。

     b.将解压路径设置为环境变量

       SONAR_HOME=E:\sonar\sonar-runner-2.4     

     c.更改配置文件:$SONAR_HOME/conf/sonar-runner.porperties

    主要是数据源的配置,sonar-runner会将分析的结果存放在数据库中。如图所示,只需将注释的模板适当位置去掉注释并更改为自己对应的sonar配置即可。



 d.将%SONAR_HOME%\bin;添加到Path环境变量中。

sonar-runner demo实例:

    在要测试的项目的根目录下添加sonar的配置文件sonar-projet.properties文件。sonar-runner执行分析时,会读取该文件。



 

 在cmd下进入到sonar测试项目下,启动sonar-runner服务。



 

在浏览器中输入http://localhost:9000查看分析结果:



 

  • 大小: 34.1 KB
  • 大小: 50.9 KB
  • 大小: 65.5 KB
  • 大小: 18 KB
  • 大小: 7.8 KB
  • 大小: 114.8 KB
  • 大小: 78.9 KB
分享到:
评论

相关推荐

    Sonar应用技术笔记

    sonar应用技术笔记是笔者在学习sonar过程中的应用记录,包括安装,配置数据库,汉化,与maven集成,在eclipse中的配置,与jira集成,在android工程中的集成配置

    sonar eclipse插件sonarlint

    sonar eclipse插件sonarlint,原先的插件已经被启用,这是最新的,如果连接本地sonar服务器,需要在eclipse.ini中配置启动参数,参数为org.sonarlint.eclipse.core/server_url 值为sonar服务器地址,如果不配置默认...

    sonar汉化包等插件

    sonar汉化包sonar汉化包sonar汉化包sonar汉化包sonar汉化包sonar汉化包sonar汉化包sonar汉化包sonar汉化包sonar汉化包sonar汉化包

    sonar中文插件1.28

    sonar中文插件1.28,适用于最后一个jdk1.8版本的sonar,sonar-l10n-zh-plugin-1.28.jar

    java代码集成sonar接口,实现sonar操作的demo

    利用java代码,调用sonar接口,实现在sonar里面创建,更改,用户,组,权限等一系列操作

    sonar+sonar.hpi

    Sonar 是一个开源的质量管理平台,专注于从项目到类方法的持续的分析和测量技术质量,它把代码质量相关软件集成到一起统一管理

    sonar7.8.zip

    sonar-gitlab-plugin-4.0.0.jar sonar-l10n-zh-plugin-1.28.jar sonar-pmd-plugin-3.2.0-SNAPSHOT.jar sonar-scanner-cli-4.0.0.1744-linux.zip sonarqube-7.8.zip

    SonarLint for Visual Studio 2019、2022

    内含两个版本[SonarLint for Visual Studio 2019、SonarLint for Visual Studio 2022](适用于VS2019、VS2022两个版本,非此版本的不适配勿下载):SonarLint 是一个免费的开源IDE 扩展,可识别并帮助您在编写代码时...

    Sonarlint中文使用手册

    Sonarlint是一款强大的代码检测插件,用户可以IDE上实时检测自己的代码问题。本文详细介绍了Eclipse和Idea集成Sonarlint的步骤和使用方法

    sonar的checkStyle插件

    sonar的checkStyle插件,直接下载放到sonar的插件文件夹就可以用了。

    UCI之Sonar数据集

    UCI的一个数据集Sonar,已经用MATLAB转化为.mat数据文件了,在MATLAB里面可以直接load

    sonar-scanner-2.8

    sonar-scanner-2.8

    【中文版】sonar实战

    功能强悍的代码质量管理平台,中文版本说明,sonar入门篇

    sonar3.2.zip

    sonar3.2

    sonar汉化包-所有版本.zip

    sonar汉化包完整版,从1.10到1.29共20个汉化jar包,sonar与汉化包有版本对应,版本对应关系可参照我的博客《Jenkins集成Sonar(2/3)登录并添加项目进行扫描+汉化》,将汉化包放到sonar的extensions/plugins目录下...

    idea 安装sonarlint 无坑

    idea 安装sonarlint 无坑可用 操作步骤: 1、解压文件,将SonarLint文件夹复制到idea安装目录下的plugins下 2、重启idea 3、进入idea的setting,找到plugins,在里面勾选上SonarLint,应用确定 4、再次重启idea,...

    FCM_sonar_sonar_fcm_matlab_

    Environment: MATLAB algorithm: FCM function: classification of sonar data

    Sonar-runner Sonar代码扫描辅助工具sonarScanner

    sonar4版本扫描辅助程序. 向服务器上传代码并做扫描分析. 使用方式: CMD切换到项目根目录下(sonar-project.properties文件所在目录)运行 sonar-runner

    sonar.rar_mat数据处理_mat数据集_sonar data_sonar dataset_sonar.mat

    sonar数据集,已处理成.mat格式,包括数据和类标,用于机器学习,聚类,分类等问题的研究

    sonar Android Lint插件

    sonar Android Lint插件

Global site tag (gtag.js) - Google Analytics