• SonarQube代码检查

    SonarQube 简介

    Sonarqube为静态代码检查工具,采用B/S架构,帮助检查代码缺陷,可以快速的定位代码中潜在的或者明显的错误,改善代码质量,提高开发速度。通过插件形式,可以支持Java、C、C++、JavaScripe等二十几种编程语言的代码质量管理与检测。

    通过客户端插件分析源代码,sonar客户端可以采用IDE插件、Sonar-Scanner插件、Ant插件和Maven插件方式,并通过各种不同的分析机制对项目源代码进行分析和扫描,并把分析扫描后的结果上传到sonar的数据库,通过sonar web界面对分析结果进行管理。

    在公司中,一般是把Sonarqube布置在服务器端,当开发人员提交代码时,Jenkins触发Sonarqube进行代码检查。但是对于开发人员来说,可以在IDEA中可以安装Sonarqube插件,并且在本地或者局域网服务器上安装Sonarqube服务器。这样就可以通过插件连接在本地使用Sonarqube进行代码检查。

    Sonarqube可以从七个维度检测代码质量:
      (1) 复杂度分布(complexity):代码复杂度过高将难以理解
      (2) 重复代码(duplications):程序中包含大量复制、粘贴的代码而导致代码臃肿,sonar可以展示源码中重复严重的地方
      (3) 单元测试统计(unit tests):统计并展示单元测试覆盖率,开发或测试可以清楚测试代码的覆盖情况
      (4) 代码规则检查(coding rules):通过Findbugs,PMD,CheckStyle等检查代码是否符合规范
      (5) 注释率(comments):若代码注释过少,特别是人员变动后,其他人接手比较难接手;若过多,又不利于阅读
      (6) 潜在的Bug(potential bugs):通过Findbugs,PMD,CheckStyle等检测潜在的bug
      (7) 结构与设计(architecture & design):找出循环,展示包与包、类与类之间的依赖、检查程序之间耦合度


    安装SonarQube

    服务端

    一、Windows系统安装

    1、下载 Sonarqube,然后解压:http://www.sonarqube.org/downloads/
    2、在mysql中新建一个sonar数据库
    3、修改~/conf/sonar.properties配置文件,在Mysql节点下添加数据库信息:

    sonar.jdbc.url=jdbc:mysql://127.0.0.1:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
    sonar.jdbc.username=root
    sonar.jdbc.password=xxxx
    sonar.sorceEncoding=UTF-8
    # 登录Sonarqube的用户名和密码
    sonar.login=admin
    sonar.password=admin
    

    4、启动Sonarqube服务
      进入~/bin/OS目录,OS对应自己的操作系统,比如我选择 ~/bin/windows-x86-64/StartSonar.bat,运行该程序启动服务,在启动过程中会初始化数据库信息。
      浏览器输入localhost:9000访问Sonarqube。
    5、配置中文
    ① 登录,输入admin/admin

    ② 按照如下步骤安装中文包

    ③ 重启服务,之后就是中文界面啦
    ④ 更新GitJava分析器
    ⑤ 新建一个项目
    6、代码规则里可以配置检查规则

    二、Linux系统安装

    建议采用Docker Compose方式进行处理,这里不做具体阐述。提供一个Docker Compose文件, docker-compose.yml 可自行安装调试。

    操作使用可参考上面Windows安装章节内容

    IDEA中开启本地SonarQube规范检查

    1. 按照如下步骤安装SonarLint插件,安装完成之后重启IDEA

    2. 配置关联sonar服务端

      全局设置

    1. 项目右键使用SonarLint分析

    2. Report里可以看到分析报告,右边可以看到应用的规则,以及给出的解决方式

    3. 对应的审查类型及严重程度

    Eclipse中开启本地SonarQube规范检查

    1. 按照如下步骤安装SonarLint插件,安装完成之后重启IDEA

    2. 配置关联sonar服务端

    1. 绑定sonar平台项目
    1. 代码扫描