`

sonar代码质量管理工具

 
阅读更多

SonarQube

1.SonarQube是什么

SonarQube是一个用于代码质量管理的开放平台。为项目提供可视化报告, 连续追踪项目质量演化过程。 通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。对结果进行再加工处理,通过量化的方式度量代码质量的变化。

2.特性

所有项目的概览:

可以快速了解上百项目的健康程度

深入代码查看:

想知道哪个代码违反规范,进入包内查看违规的源码

编码规则:

有超过600多的代码规范。从命名规范到违反模式的检测

单元测试:

单元测试是保证代码质量最有效方式。运行单元测试,度量单元测试的覆盖率。

标准化度量:

包括所有经典的度量。注释、编码规范、潜在bug、复杂度、单元测试、重复度、架构与设计。

3.安装

3.1 环境要求

     a).JDK

     环境变量的设置:

     JAVA_HOME= C:\Program Files\Java\jdk1.8.0_101

     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.3 数据库安装

sonar支持的数据库类型有apache derbyh2,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.4 安装及配置sonar

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

安装服务器端 sonarqube-6.0

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文件夹下即可,其他数据库的驱动包已经放到默认的路径下。

3.5启动sonarqube

 

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



 

 

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



 

 

3.6修改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查看分析结果:



 

 

错误级别



 

Blocker  最严重的阻断类的

Critical   灾难性的BUG

Major    Major是执行有效测试用例时发现的比较严重的BUG

Minor    Minor是执行无效测试用例时发现的比较严重的BUG

 

Info      info级别的

术语:

官网地址:http://docs.sonarqube.org/display/SONAR/Metric+Definitions

 

 

术语 解释 备注
Issues    问题  
measures 度量单位  
quality profile 质量简介  
quality gate 质量阀门  
Complexity 复杂性 if, for, while, case, catch, throw, return (that is not the last statement of a method), &&, ||, ?
Comment lines 注释行数  
Duplicated blocks

Number of duplicated blocks of lines

 
Issues    
Maintainability     
Quality Gates    
Reliability    
Security    
Tests    
圈复杂度:

1.圈复杂度用来衡量一个模块判定结构的复杂程度,数量上表现为独立现行路径条数,即合理的预防错误所需测试的最少路径条数,圈复杂度

大说明程序代码可能质量低且难于测试和维护

1.例如img_web项目SimilarImageSearch.javabinaryToHex(int binary) 方法137

报警The cyclomatic complexity of methods should not exceed a defined threshold 该方法的复杂度超过了阈值

重复代码:

例如img_web项目IdentifyingCode2.javawriteStr()方法里面

 

 

5 mavensonar配合使用

在上述安装完成后,在maven中配置sonar:打开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>

 1启动sonarsonarqube-6.0\bin\windows-x86-64目录下的StartSonar.bat文件。

  2. 进入maven项目中,执行mvn sonar:sonar命令,等待结束

  3.输入localhost:9000回车,查看:

6.项目分析结果

 

 

  • 大小: 37.5 KB
  • 大小: 49 KB
  • 大小: 63 KB
  • 大小: 32.9 KB
  • 大小: 13.3 KB
  • 大小: 127.8 KB
  • 大小: 112.5 KB
  • 大小: 4.9 KB
  • 大小: 60.4 KB
分享到:
评论

相关推荐

    SonarLint代码质量检查工具

    SonarLint是一款强大的代码质量检查工具,它与SonarQube平台相辅相成,致力于提升软件开发过程中的...通过与SonarQube的联动,SonarLint可以实现更全面、更一致的代码质量管理,是现代敏捷开发中不可或缺的工具之一。

    SonarLint IDEA代码检查工具最新

    SonarLint是一款强大的静态代码分析工具,它旨在帮助开发者在编码阶段就发现并修复代码中的潜在问题。...通过这种方式,SonarLint成为了一种有效的代码质量管理工具,助力开发团队维持高标准的代码质量。

    sonar代码管理工具6.7.5

    SonarQube是一款强大的代码质量管理工具,主要用于检测和分析源代码中的潜在问题,如bug、代码异味、重复代码以及不遵循编码规范的情况。其6.7.5版本是该产品的一个稳定版本,提供了多种功能来提升软件开发的质量...

    Sonar代码规范

    sonar(SonarQube)是一个开源代码质量管理平台。它通过插件的形式来管理代码,它支持的语言包括:Java,PHP,C#,C等。 7个原则: 1. 不遵循代码标准 sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具...

    sonarqube-4.5.4安装包及语言包相关插件

    针对老版本的sonar代码质量管理工具安装,需要使用环境: CentOS 6.6、 JDK7、 MySQL5.1 、 SonarQube-4.5.4(LTS); 但是sonar安装并正常进入之后在线添加语言包或其他插件时会发现无法初始化插件(因为在线添加插件...

    deploy-sonar代码扫描分析工具

    SonarQube是一款强大的开源代码质量管理工具,它集成了代码静态分析、复杂度计算、代码异味检测、漏洞查找等功能,帮助开发者在软件开发过程中发现并修复代码问题,提高代码质量和安全性。在本文中,我们将深入探讨...

    Sonar代码质量管理平台 v8.7.1 社区版-源码.zip

    SonarQube是一款强大的代码质量管理平台,主要用于静态代码分析、代码异味检测以及代码复杂度评估。社区版v8.7.1提供了丰富的功能,帮助企业或个人开发者提升代码质量,确保软件项目的可维护性和稳定性。本资源包含...

    sonar+Jenkins 构建代码质量自动化分析平台.doc

    Sonar是一款强大的开源代码质量管理工具,它能够自动分析代码中的缺陷、漏洞和不良编码习惯,支持多种编程语言,包括Java、C/C++、Python、PHP等。Sonar与DevOps工具链的深度整合使得它可以无缝对接Jenkins、TFS/...

    Sonar代码质量管理平台 v8.5.1社区版

    为您提供Sonar代码质量管理平台下载,Sonar(SonarQube)是一个开源平台,用于管理源代码的质量。Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。支持的语言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex...

    SonarLint代码审查工具的安装与使用

    Sonar 是一个用于代码质量管理的开源平台,用于管理源代码的质量,通 过 Eclipse 插件形式,可以支持包括 java, C#, C/C++, PL/SQL, Cobol, JS, Groovy 等等二十几种编程语言的代码质量管理与检测。

    代码质量管理平台Sonar在软件项目管理中的应用研究.docx

    Sonar是一款强大的代码质量管理平台,专为软件项目管理提供代码质量评估和监控。它通过集成多种语言的编程规范插件、质量分析指标插件以及质量管理插件,实现了对代码质量的全面评估。Sonar的核心特点在于其模块化...

    Sonar代码质量管理平台 v8.5 社区版

    为您提供Sonar代码质量管理平台下载,Sonar(SonarQube)是一个开源平台,用于管理源代码的质量。Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。支持的语言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex...

    Sonar代码质量管理平台 v8.4.2社区版

    为您提供Sonar代码质量管理平台下载,Sonar(SonarQube)是一个开源平台,用于管理源代码的质量。Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。支持的语言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex...

    Sonar代码质量分析插件

    SonarQube是一款强大的代码质量管理平台,主要用于执行静态代码分析,以发现并度量源代码中的潜在缺陷、漏洞和重复代码。它支持多种编程语言,包括Python和Java,这些都是你在标签中提到的关键技术领域。SonarQube...

    sonar-2.14代码质量管理

    《SonarQube 2.14:代码质量管理深度解析》 SonarQube是一款强大的开源平台,专门用于代码质量管理,旨在帮助企业与开发者提升代码质量和安全性。2.14版本作为其历史版本之一,虽然发布相对较早,但其功能和理念...

    sonarqube代码质量检测工具

    Sonar是一个用于代码质量管理的开源平台,用于管理Java源代码的质量。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具,比如pmd-cpd、checkstyle、findbugs、Jenkins。通过不同的插件...

    Sonar开源的Java源代码管理平台UT覆盖率.pdf

    Sonar 提供了一个质量数据报告工具和代码质量管理平台,帮助开发者提高代码质量和降低维护成本。 Sonar 的主要特点包括: * 代码覆盖:通过单元测试,Sonar 可以显示哪些代码行被选中。 * 改善编码规则:Sonar ...

    SonarQube代码质量管理平台

    SonarQube是一款强大的代码质量管理平台,专门设计用于检测、分析和报告软件代码的质量问题。它结合了静态代码分析和代码审查的特性,为开发团队提供了一种全面的方式来提升代码质量和安全性。SonarQube的核心目标是...

    deploy-sonar代码扫描分析

    总之,"deploy-sonar代码扫描分析"是一个关于使用SonarQube进行代码质量管理和提升的过程,它涉及服务器部署、分析器配置、代码扫描和结果解读等多个环节。通过深入理解和实践,我们可以构建一个高效、健壮的代码...

    Sonar代码质量管理平台-其他

    Sonar 不只是一个质量数据报告工具,更是代码质量管理平台。支持的语言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex 等。 Sonar主要特点: 1、代码覆盖:通过单元测试,将会显示哪行代码被选中 2、改善编码规则 3、...

Global site tag (gtag.js) - Google Analytics