SonarQube入门 - 搭建本地环境

本文介绍了SonarQube自动代码审查工具的原理、组件、安装过程(包括Java环境设置、Docker部署、安装中文插件),以及如何搭建项目、生成Token和使用SonarScanner进行代码扫描。同时涵盖了与GitLab集成和与ESLint的区别等内容。
摘要由CSDN通过智能技术生成

一、SonarQube是什么?

SonarQube是一种自我管理的自动代码审查工具,可以系统地帮助您交付干净的代码作为我们Sonar 解决方案的核心元素 ,SonarQube 集成到您现有的工作流程中并检测代码中的问题,以帮助您对项目执行持续的代码检查。该工具可分析 30 多种不同的编程语言 ,并集成到您的 CI 管道 和 DevOps 平台中 ,以确保您的代码符合高质量标准。

二、SonarQube 实例包含三个组件::

  1. SonarScanner:扫描器,负责将源文件进行代码分析,并将分析后的报告发送给SonarQube服务器
  2. SonarQube Server:SonarQube服务器,负责处理分析报告,后台管理等
  3. Database server:数据库服务器,负责存储数据

三 、安装

1. Java 环境
$~ java -version
java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)
2. SonarQube 镜像下载
$> docker pull sonarqube
$> docker volume create --name sonarqube_data
$> docker volume create --name sonarqube_logs
$> docker volume create --name sonarqube_extensions
$> docker run -d --name sonarqube -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true -p 9000:9000 sonarqube:latest

您现在可以通过 http://localhost:9000 浏览 SonarQube (默认系统管理员凭据是 admin/ admin

3. 安装中文插件
3.1 在线安装 (需点击 I understand the risk

3.2 手动安装

        1.sonar-|10n-zh-plugin。该版本需要与您的 SonarQube 版本兼容。

        2.将下载的 jar 放入 中 <SONARQUBE_HOME>/extensions/plugins,并删除相同插件的所有以前版本。

        3.重新启动您的 SonarQube 服务器。

四、搭建项目

1. 选择手动创建项目,根据提示一步步去创建项目...

2. 接下来要生成Token, 并且最好是把生成token事先保存下来:

Plain Text
sqp_603a34460857921938f47eb9e11757d821a9d6c2

3. 然后选择配置选项,选择项目构建技术, 选选择当前系统环境  
4. 根据提示下载并安装 SonarScanner
5. 下载后解压重命名后拷贝到 /usr/local/ 目录下,并设置环境变量
$ vi ~/.bash_profile

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

$ source ~/.bash_profile
6. 设置好以后,通过以下方式验证一下,看到如下信息就表示设置成功
~ sonar-scanner -v
INFO: Scanner configuration file: /usr/local/Cellar/sonar-scanner/4.8.0.2856/libexec/conf/sonar-scanner.properties
INFO: Project root configuration file: NONE
INFO: SonarScanner 4.8.0.2856
INFO: Java 11.0.17 Homebrew (64-bit)
INFO: Mac OS X 13.4.1 x86_64
7. 修改sonar-scanner文件夹下的 conf/sonar-scanner.properties配置文件,打开以下两行代码注释,后保存
#----- Default SonarQube server
sonar.host.url=http://localhost:9000
#----- Default source code encoding
sonar.sourceEncoding=UTF-8

五、扫描项目

1. 进入到项目要目录执行以下命令
sonar-scanner \
    -Dsonar.projectKey=test-project \
    -Dsonar.sources=. \
    -Dsonar.host.url=http://localhost:9000 \
    -Dsonar.login=sqp_603a34460857921938f47eb9e11757d821a9d6c2

或 在项目根目录创建 sonar-project.properties文件:

// Properties
# 本地自己起的sonarqube服务地址
sonar.host.url=http://127.0.0.1:9000/
# Sonar 令牌
sonar.login=sqp_603a34460857921938f47eb9e11757d821a9d6c2
# Sonar项目标识,在 SonarQube实例下必须唯一
sonar.projectKey=test-project
sonar.projectName=test-project

# 项目版本
sonar.projectVersion=1.4.0
# 代码文件的编码
sonar.sourceEncoding=UTF-8
# 项目代码与 sonar-project.properties 文件的相对路径
sonar.sources=./src
# 排除不参与代码分析的文件或目录
sonar.exclusions=/node_modules/
sonar.tests=./src
sonar.test.inclusions=**/*.spec.ts
2. 运行sonar-scanner命令,看到类似以下输出就说明扫描成功~

3. 刷新 http://localhost:9000 查看报告

六、高级进阶

  • 更换数据库,如PostgreSQL、MySQL...

七、补充

1. SonarQube 和 eslint 区别

  • ESLint:它主要用于JavaScript和TypeScript代码的Linting(即语法检查和代码风格检查)。ESLint是一个可扩展的工具,允许你自定义规则,以适应特定的编码风格和规范。ESLint的重点是实时反馈,它可以轻松集成到IDE和编辑器中,通常用于开发过程中。
  • SonarQube:它是一个多语言的代码质量检查工具,支持包括Java,C#,JavaScript,TypeScript在内的30多种语言。SonarQube不仅检查语法错误和代码风格,还分析代码的复杂性,检测可能的漏洞,做代码覆盖率统计等。它的主要目标是长期的代码质量跟踪和管理,通常在CI/CD流水线中使用。

简单来说,ESLint主要用于JavaScript/TypeScript的语法和风格检查,强调的是实时反馈;而SonarQube是一种多语言支持,更全面的代码质量管理工具,强调的是代码质量的长期跟踪和管理。

参考文档:

其他类似工具:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值