zoukankan      html  css  js  c++  java
  • SonarQube介绍及部署

     

    SonarQube介绍及部署

     

    编写人:罗旭成

    编写时间:2014-5-28

     

    SonarQube简介

    SonarQube是一个用于代码质量管理的开源平台(Java开发),用于管理源代码的质量,可以从七个维度检测代码质量,通过插件形式,可以支持包括Java,C#,C/C++,PHP,PL/SQL,Cobol,Web,XML,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测。

    SonarQube能带来什么?

    1.糟糕的复杂度分布

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

    2.重复

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

     

    3.缺乏单元测试

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

    4.没有代码标准

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

    5.没有足够的或者过多的注释

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

    6.潜在的bug

         SonarQube可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检测出潜在的Bug。

    7.糟糕的设计(原文Spaghetti Design,意大利面式设计)

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

     

    SonarQube部署说明

    (以C#源码为例)

    第一步:安装SonarQube

    1. 准备好JAVA环境(Java6.0)。

    2. 准备好MySQL环境(可用默认的数据库derby,配置文件全部不用做修改)。

    3. 下载最新的SonarQube,(下载网址为:http://www.sonarqube.org/)解压到目录C:appsonarqube-4.3(当前为最新版)。

    4. 修改配置文件C:app sonarqube-4.3confsonar.properties:

    #数据库用户名
    
    sonar.jdbc.username=root
    
    #数据库密码
    
    sonar.jdbc.password=root
    
    #数据库地址
    
    sonar.jdbc.url:jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
    
    #数据库驱动
    
    sonar.jdbc.driverClassName:com.mysql.jdbc.Driver
    
     
    
    #数据库相关配置
    
    sonar.jdbc.maxActive=20
    
    sonar.jdbc.maxIdle=5
    
    sonar.jdbc.minIdle=2
    
    sonar.jdbc.maxWait=5000
    
    sonar.jdbc.minEvictableIdleTimeMillis=600000
    
    sonar.jdbc.timeBetweenEvictionRunsMillis=30000

    5. 执行C:appsonar-3.6inwindows-x86-64StartSonar.bat(操作系统为windows xp),启动自带的JETTY服务器。打开http://localhost:9000,如果显示SonarQube主页,则SonarQube安装成功.

    安装成功后的效果:

    6. 安装中文插件和其它语言插件:将插件JAR包放到目录C:app sonarqube-4.3extensionsplugins,重启服务即安装成功。

        

    7. 数据库会自动创建表结构(MySQL):

    注:默认的配置可以不作修改,直接可连接上,连的默认数据库为derby。

    第二步:安装SONAR-RUNNER

    1. 下载sonar-runner,解压到目录C:appsonar-runner-2.4

    2. 修改配置文件C:appsonar-runner-2.4confsonar-runner.properties:

    #sonar访问地址
    
    sonar.host.url=http://localhost:9000
    
    #连接数据库地址
    
    sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
    
    #数据库的用户名
    
    sonar.jdbc.username=root
    
    #数据库的密码
    
    sonar.jdbc.password=root
    
    #sonar的字符集
    
    sonar.sourceEncoding=zh_CN
    
    #sonar的登录用户
    
    sonar.login=admin
    
    #sonar的登录密码
    
    sonar.password=admin

    3. 添加系统环境变量:SONAR_RUNNER_HOME 值为 C:appsonar-runner-2.4。

    4. 修改环境变量Path,在变量值末尾添加:“;%SONAR_RUNNER_HOME%in”。

    5. 命令行里执行 sonar-runner -h 如果显示如下内容,则安装成功。

    C:appsonar-runner-2.4
    
    INFO:
    
    INFO: usage: sonar-runner [options]
    
    INFO:
    
    INFO: Options:
    
    INFO:  -D,--define <arg>     Define property
    
    INFO:  -e,--errors           Produce execution error messages
    
    INFO:  -h,--help             Display help information
    
    INFO:  -v,--version          Display version information
    
    INFO:  -X,--debug            Produce execution debug output

    第三步:分析代码

    1. 拷贝代码到C:appproject

    代码目录结构如图:

    2. 添加C:appprojectsonar-project.properties 内容如下 :

    #项目主键 需要唯一
    
    sonar.projectKey=DataCollectionSolution
    
    #项目版本
    
    sonar.projectVersion=1.0
    
    #项目名称
    
    sonar.projectName=C# Project
    
     
    
    #sonar的语言
    
    sonar.language=cs
    
    sonar.dotnet.key.generation.strategy=safe
    
    sonar.sourceEncoding=UTF-8
    
     
    
    #项目访问目录
    
    sonar.sources=C:\app\project\
    
    sonar.fxcop.mode=skip
    
    sonar.gendarme.mode=skip
    
    sonar.gallio.mode=skip
    
    sonar.ndeps.mode=skip
    
    sonar.stylecop.mode=skip

    3 命令行里执行 cd C:appproject 到项目根目录。

    然后执行命令:sonar-runner,控制台会打印分析过程。当出现SUCCESS时,则分析成功。

    INFO: --------------------
    
    INFO: EXECUTION SUCCESS
    
    INFO: --------------------
    
    Total time: 2:37.891s
    
    Final Memory: 14M/449M
    
    INFO: --------------------

    刷新网站,显示如下:

    完成以上操作及配置成功。

     

     

    官网:http://www.sonarqube.org/

    示例:http://nemo.sonarsource.org/

    文档&插件:http://docs.codehaus.org/

  • 相关阅读:
    关于 Bellman-Ford 与 Floyd 算法的一点感想
    中途相遇法 解决 超大背包问题 pack
    具体一些的博弈论 sqrstone
    SG函数学习总结
    mc
    string
    积木大赛
    pta l3-20(至多删三个字符)
    pta l3-7(天梯地图)
    ucore-lab1-练习2report
  • 原文地址:https://www.cnblogs.com/jara/p/3758063.html
Copyright © 2011-2022 走看看