SonarQube介绍

介绍

是一个开源平台,用于管理源代码的质量。
多维度分析代码:代码量、安全隐患、编写规范隐患、重复度、复杂度、代码增量、测试覆盖率等。
支持30+编程语言的代码扫描和分析,包含javapythonC#javascriptgoC++等。
涵盖了编程语言的静态扫描规则: 代码编写规范+安全规范
通过插件机制,可以集成不同的测试工具,代码分析工具,以及持续集成工具(jenkins)
官方网站:Self-managed | SonarQube | Sonar

架构

sonarQube静态代码扫描平台由3部分组成:sonarqube-scanner ,sonarqube server和Database server,其基本架构图如下: 

sonarqube server上主要有3个应用:

  • Web服务:为SonarQube用户界面提供服务的。
  • 搜索服务:基于 Elasticsearch 器。
  • 计算引擎:负责处理代码分析报告并将其保存在SonarQube数据库中

环境

SonarQube 在 7.9 版本中已经放弃了对 MySQL 的支持,并且建议在商业环境中采用 PostgreSQL, 那么 安装SonarQube时需要依赖PostgreSQL

SonarQube 服务器需要 Java 版本 11,而 SonarQube 扫描程序需要 Java 版本 11 或 17

java11+postgres+sonarqube+sonar-scanner

https://docs.sonarqube.org/latest/requirements/prerequisites-and-overview/

安装

安装有2种方式:local本地安装、容器安装

容器安装步骤,见下:

步骤1:安装docker和docker-compose

安装docker-compose: 

# 建议用迅雷下载二进制文件

sudo curl -L "https://github.com/docker/compose/releases/download/1.28.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

下载的文件会输出到 /usr/local/bin/docker-compose

国内镜像:

sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

之后给compose配置可执行权限

sudo chmod +x /usr/local/bin/docker-compose

输入docker-compose version

或者通过pip安装可直接安装docker-compose。 ref:Linux中安装/部署docker-compose_A-刘晨阳的博客-CSDN博客h 

或者:

步骤2:下载安装sonerqube和PostgreSQL

snoarqube依赖postgres数据库

所以先下载postgres

docker pull postgres:latest
docker pull sonarqube:8.9.2-community

拉取对应镜像后,此时用到之前的docker-compose安装sonarqube :

选择一个安装路径,下面放入docker-compose.yml文件

version: "3"
services:
  sonarqube:
    image: sonarqube:community
    hostname: sonarqube
    container_name: sonarqube
    depends_on:
      - db
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
      SONAR_JDBC_USERNAME: sonar
      SONAR_JDBC_PASSWORD: sonar
    volumes:
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_logs:/opt/sonarqube/logs
    ports:
      - "9000:9000"
  db:
    image: postgres:13
    hostname: postgresql
    container_name: postgresql
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
      POSTGRES_DB: sonar
    volumes:
      - postgresql:/var/lib/postgresql
      - postgresql_data:/var/lib/postgresql/data

volumes:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_logs:
  postgresql:
  postgresql_data:

拉取对应镜像后,此时用到之前的docker-compose安装sonarqube :

选择一个安装路径,下面放入docker-compose.yml文件

docker-compose文件对文件内容格式要求很高,里面不能出现table的空格,如果在运行时提示异常需要调整里面的格式,db也是在services下的,如果格式异常,就会执行不了,可以进去:set number定位行数调整

执行:

docker-compose up -d

需要查看日志的话

docker-compose logs -f

一切ok

查看下docker的进程,docker ps看是否正常启动:

登录对应环境的9000端口即可登录snoarqube, 默认用户名密码都是admin,提示修改密码即可:

Jenkins接入

1.创建项目:

2.建用户生成token

3.安装sonorqube插件

4.添加credential

5.配置sonarqube server

6.配置sonarqube scanner

6. jenkins 任务中配置sonarqube

方法1: 

 方法2(推荐):

指定sonar-scanner扫描的配置信息

各配置源信息:

Dsonar.projectKey

 sonarqube token

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值