zoukankan      html  css  js  c++  java
  • Linux下SonarQube代码质量平台的安装和使用方法

    Sonar简介:

    Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量

    通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测

    sonarQube能带来什么?

    Developers’ Seven Deadly Sins

    1.糟糕的复杂度分布

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

    2.重复

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

    3.缺乏单元测试

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

    4.没有代码标准

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

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

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

    6.潜在的bug

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

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

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

    下面介绍一下安装和使用方法:

    1. 下载并安装Jdk。

    不做太多介绍大家可以参考:http://www.cnblogs.com/owenma/p/6139860.html

    2. 下载安装Mysql。

    不做太多介绍大家可以参考:http://www.cnblogs.com/owenma/p/6394477.html

    3. 下载 SonarQube和Sonar scanner。

    SonarQube: http://www.sonarqube.org/downloads/

    Sonar scanner: https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner

    4.数据库配置

    下载好所有的安装包之后首先配置数据库: 
    进入数据库命令

    #mysql -u root -p
    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;
     
     
    5.安装sonar与sonar-scanner

    将下载的sonarqube-6.7.zip包解压至Linux某路径如/usr/local 
    将下载的sonar-scanner-cli-3.0.3.778-linux.zip包解压某路径/usr/local

    配置环境变量

    启动服务

    /usr/local/sonarqube-6.7/bin/linux-x86-64/sonar.sh start 
    目录切换至sonar的/bin/linux-x86-64/目录,启动服务 
    #./sonar.sh start 启动服务 
    #./sonar.sh stop 停止服务 
    #./sonar.sh restart 重启服务

    至此,sonar就安装好了 
    访问http:localhost:9000即可

    sonar中文补丁包安装

    安装中文补丁包可以通过访问http:localhost:9000,打开sonar后,进入更新中心安装 
    搜索chinese Pack,安装中文语言包 
    或者下载中文补丁包后,放到SONARQUBE_HOME/extensions/plugins目录,然后重启SonarQube服务

    sonar-scanner: 
    /usr/local/sonar-scanner-3.0.3/bin

    把以下配置加到:/etc/profile

    SONAR_RUNNER_HOME=/usr/local/sonar-scanner-3.0.3 
    PATH=$SONAR_RUNNER_HOME/bin:$PATH 
    export SONAR_RUNNER_HOME 
    export PATH

    然后执行source /etc/profile

    修改sonar配置文件 
    编辑/conf/sonar.properties文件,配置数据库设置,默认已经提供了各类数据库的支持 
    这里使用mysql,因此取消mysql模块的注释 
    #vi sonar.properties

    sonar.jdbc.username: sonar
    sonar.jdbc.password: sonar
    sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
     
     
     

    修改sonar-runner的配置文件 
    切换至sonar-runner的安装目录下,

    修改sonar-runner.properties 
    根据实际使用数据库情况取消相应注释 目前最新版好像只配一个URL。

    #Configure here general information about the environment, such as SonarQube DB details for example
    #No information about specific project should appear here
     
    #----- Default SonarQube server
    sonar.host.url=http://localhost:9000
     
    #----- Default source code encoding
    #sonar.sourceEncoding=UTF-8
     
     
    6.使用SonarQube Runner分析源码

    预置条件 
    已安装SonarQube Runner且环境变量已配置,即sonar-runner命令可在任意目录下执行 
    比如:sonar-runner -v

    1.在项目源码的根目录下创建sonar-project.properties配置文件 
    以Java项目为例:

    # must be unique in a given SonarQube instance
    sonar.projectKey=yy_ybz//项目名称
    # this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
     
    sonar.projectName=ybz//项目名称
    sonar.projectVersion=1.0
    sonar.sources=src
    sonar.java.binaries=classes
    sonar.language=java
    sonar.sourceEncoding=UTF-8

    2.执行分析 
    切换到项目源码根目录,执行命令 
    # sonar-runner

    分析成功后访问http:localhost:9000即可查看分析结果.

  • 相关阅读:
    Android学习笔记(四十):Preference的使用
    我的Android笔记(十一)——使用Preference保存设置
    Vim简明教程【CoolShell】
    普通人的编辑利器——Vim
    终端shell显示当前git分支_修订版
    代码规范须知_V1.0_20140703
    Android 4.4源码编译过程
    一个帖子学会Android开发四大组件
    什么是软件质量?
    软件配置管理的作用?软件配置包括什么?
  • 原文地址:https://www.cnblogs.com/owenma/p/7891170.html
Copyright © 2011-2022 走看看