`

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的安装、配置数据库、汉化、与Maven的集成,以及在Eclipse中的配置和与其他系统的集成,如JIRA。 首先,Sonar的安装包括三个核心组件:数据库、WEB服务器和客户端。数据库用于存储Sonar的...

    sonar eclipse插件sonarlint

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

    【中文版】sonar实战

    ### Sonar实战:从入门到进阶 #### 知识点概述 Sonar是一个功能强大的代码质量管理平台,专为软件开发团队设计,旨在帮助他们监控、管理和改进代码质量。Sonar不仅提供了静态代码分析,还涵盖了动态分析(如单元...

    Sonarlint中文使用手册

    SonarLint是一款代码检测插件,它能够集成到Eclipse和IntelliJ IDEA这类的集成开发环境(IDE)中,帮助开发者实时地在IDE上检测代码中的问题。SonarLint可以检测多种编程语言,如Java、JavaScript、PHP和Python等,...

    fisher_Sonar数据集_fisher_sonar_fishersonar_分类_数据集sonar_源码

    这个数据集源自声纳技术,其中包含了对水下物体的探测数据,因此它对于理解和研究目标识别,特别是遥感和信号处理领域具有重要价值。数据集被设计用于区分两类目标:岩石和金属物体,这些信息以二进制形式表示,通过...

    SonarLint4.0.0.zip

    SonarLint是一款强大的静态代码分析工具,用于检测代码中的潜在问题和缺陷,它可以在编码阶段就帮助开发者发现并修复代码的不良实践。SonarLint 4.0.0是该工具的一个版本,针对IntelliJ IDEA(简称Idea)提供了一个...

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

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

    sonar runner 进行代码质量监控

    ### Sonar Runner 进行代码质量监控 #### 一、Sonar环境搭建 为了实现代码的质量监控,首先需要搭建Sonar环境。以下是详细的步骤: 1. **安装JDK-1.5以上版本**:Sonar需要Java环境支持,因此首先要确保安装了JDK...

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

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

    sonar与maven的集成使用说明

    在Sonar中,技术债务可以量化为修复所有问题所需的工作量。 3. **重复率**: 衡量代码重复性的指标,高重复率意味着代码复用性差,可能会导致后期维护困难。通常建议将代码重复率控制在一个较低的水平,例如不超过5...

    sonar中文插件1.28

    随着技术的发展,虽然更高版本的JDK可能已经发布,但此插件仍专注于支持JDK 1.8,确保在旧环境中的兼容性。 Sonar-l10n-zh-plugin-1.28.jar是插件的主文件,其命名规则遵循SonarQube插件的一般惯例,"l10n"代表国际...

    sonarlint-3.6.0.zip

    SonarLint是一款强大的静态代码分析工具,用于在开发过程中实时检测代码质量问题。它与SonarQube服务器相结合,可以提供更全面的代码质量管理。这款插件适用于多种集成开发环境(IDE),包括Eclipse。"sonarlint-...

    sonar使用教程

    sonar使用教程涵盖了在Linux环境下搭建SonarQube环境的详细步骤。SonarQube是一个开源平台,用于持续检测代码质量,支持多种编程语言。在本教程中,主要讲述了如何在具有CentOS 7.0操作系统的Linux环境下进行...

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

    Sonar数据集源于1960年代的军事技术,当时水下物体的探测主要依赖于声波反射。数据集由60个不同的特征组成,这些特征是通过分析水下物体反射回来的声波信号得出的。每个样本代表一次声纳探测结果,对应着水下目标的...

    sonar汉化包等插件

    "sonar汉化包"是针对SonarQube的中文语言包,使得用户界面更加友好,方便中国开发者使用。本文将详细介绍SonarQube以及与汉化相关的插件。 首先,SonarQube的核心功能包括静态代码分析、代码复杂度计算、代码覆盖率...

    IntelliJ IDEA-SonarLint 离线傻瓜式安装

    SonarLint原生集成在IntelliJ IDEA中,但有时可能会遇到与其它插件如`scalint`的兼容性问题,因此,本篇将介绍如何进行SonarLint的离线傻瓜式安装。 首先,由于在线安装SonarLint时可能会遇到版本不匹配或验证失败...

    Sonar7.8版本mybatis插件

    Sonar7.8版本mybatis插件

    sonar+sonar.hpi

    这款工具集成了多种代码分析器,可以对项目进行深度扫描,从项目整体到类方法的每一个细节,全方位地评估其技术质量。本文将深入探讨SonarQube的核心功能、工作原理以及如何在项目中使用。 一、SonarQube概述 ...

    Sonar中文语言包

    sonar-l10n-zh-plugin-1.8.jar:Sonar中文语言包1.8版本,从官网下载的原来来编译的,已经打包好了,方便大家使用。

    sonar 和sonarscanner的linux安装包

    1. 解压`sonar-scanner-cli-3.0.3.778-linux.zip`,这将包含可执行文件`bin/sonar-scanner`。 2. 将解压后的目录添加到系统的PATH环境变量中,以便在任何地方都能执行`sonar-scanner`命令。 3. 可选:自定义分析配置...

Global site tag (gtag.js) - Google Analytics