SonarQube简介与Mac快速搭建

SonarQube是一个开源平台,用于管理代码的质量

主要从以下七个维度检测代码质量

  1. 不遵循代码标准
    sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具规范代码编写。
  2. 潜在的缺陷
    sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具检 测出潜在的缺陷。
  3. 糟糕的复杂度分布
    文件、类、方法等,如果复杂度过高将难以改变,这会使得开发人员 难以理解它们, 且如果没有自动化的单元测试,对于程序中的任何组件的改变都将可能导致需要全面的回归测试。
  4. 重复率
    检查重复的代码块,避免大量的复制粘贴。
  5. 注释不足或者过多
    没有注释将使代码可读性变差,特别是当不可避免地出现人员变动时,程序的可读性将大幅下降。而过多的注释又会使得开发人员将精力过多地花费在阅读注释上,亦违背初衷。
  6. 单元测试覆盖率
    sonar可以很方便地统计并展示单元测试覆盖率。
  7. 糟糕的设计
    通过sonar可以找出循环,展示包与包、类与类之间的相互依赖关系,可以检测自定义的架构规则。通过sonar可以管理第三方的jar包,可以利用LCOM4检测单个任务规则的应用情况, 检测藕合。

Docker快速安装

使用安装包还需要安装并配置数据库环境,而且SonarQube 8.0以上版本是不支持mysql的,所以选择使用Docker快速安装

1
docker pull sonarqube

镜像安装完成后,命名并在9000端口启动

1
docker run -d --name sonarqube -p 9000:9000 sonarqube

9000是默认端口,其他端口启动的话在使用SonarScanner时需要修改配置文件

访问9000端口查看是否启动成功,首次启动成功后,后续使用时

1
2
3
4
// 启动
docker start sonarqube
// 关闭
docker stop sonarqube

安装SonarScanner

SonarScanner用于扫描项目代码,安装比较简单,官网下载安装包解压即可,‘点击安装’

一般不需要修改配置,要修改比如默认端口号之类的配置的话,编辑conf/sonar-scanner.properties,按官网说明修改即可。

解压完成后,需要配置环境变量

1
2
export SONAR_RUNNER_HOME=/your path/SonarQube/sonar-scanner
export PATH=$PATH:$SONAR_RUNNER_HOME/bin

项目配置

扫描项目代码时需要在代码根目录下创建sonar-project.properties文件,具体见官网,下面简单介绍一下我用到的几个

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 项目ID,唯一
sonar.projectKey=siemens
# 平台显示的项目名
sonar.projectName=siemens
# 版本号
sonar.projectVersion=1.0
# 路径
sonar.sources=./
# 编程语言
sonar.language=js,ts
# 编码
sonar.sourceEncoding=UTF-8
# 测试覆盖率排除的文件
sonar.coverage.exclusions=**/*.spec.ts
# 代码扫描排除的文件
sonar.exclusions=**/*.spec.ts,**/*.scss,e2e/**/*.*
# 测试报告路径
sonar.typescript.lcov.reportPaths=coverage/lcov.info

配置好之后在项目根目录执行

1
sonar-scanner

成功后访问9000端口查看报告即可

文章目录
  1. 1. Docker快速安装
  2. 2. 安装SonarScanner
  3. 3. 项目配置
|