sonarqube安装并配置CI/CD

news2024/11/15 11:00:34

sonarqube安装使用

目录

  • 简介
  • 效果(配置在下面查看)
  • 官方文档
  • 环境准备
  • 配置compose-sonarqube.yml
  • 启动
  • 登录
  • 集成Gitlab
    • 获取私钥
    • sonarqube配置gitlab
    • 查看项目
  • 配置
    • 手动方式
    • Gitlab CI/CD 自动检测

简介

SonarQube是一个开源的代码质量管理平台,用于对代码进行静态代码分析、代码质量评估、检测代码漏洞和代码重复等。它提供了一个集中的仪表板,可以帮助开发人员和团队实时监测和跟踪代码质量,以及改进代码的可读性、可维护性和可靠性。 SonarQube支持多种编程语言,包括Java、C/C++、C#、JavaScript、Python等,可以分析和检测这些语言的代码,并提供详细的报告和指导建议。它使用了静态代码分析来检测代码中的常见问题,如代码重复、代码复杂度、安全漏洞、潜在的错误和坏味道等。 SonarQube的工作原理是通过插件和规则来对代码进行分析和评估。它提供了一系列的规则集,可以根据项目的需要进行配置和扩展。开发人员可以通过将SonarQube与版本控制系统集成,实现持续集成和自动化分析,以便在代码提交前及时发现和解决问题。 SonarQube还提供了一些高级功能,如代码覆盖率、复杂度热点、技术债务、代码质量门禁等。它还支持与Jenkins、GitLab等工具的集成,方便在开发流程中进行代码质量监控和管理。 总之,SonarQube是一个功能强大的代码质量管理平台,可以帮助开发人员提高代码质量,减少技术债务,并提供可靠的代码评估和建议。

❗这个工具能够在每次push代码的时候直接帮我们做代码检查,也可以直接检查仓库中的代码并提供丰富报表和解决方式

效果(配置在下面查看)

file 可以看到常见统计指标,其中代码重复率已经爆炸了。。1/5的代码重复。。

file 可以看到左侧的分类特别详细,实际可以操作的功能也很多

file 点击具体BUG可以看到详细错误信息

file 安全热点可以查看问题较大的代码 file

可以点击ide打开按钮,直接打开到当前文件

file 这边有详细的指标

file 代码统计

file 截图的时候是手动上传,所以活动较少,实际上通过CI方式,会和git提交同步

file

官方文档

https://docs.sonarqube.org/latest/setup/install-server/

环境准备

安装Docker-compose

gitlab配置CI/CD

配置compose-sonarqube.yml

version: "3"

services:
  sonarqube:
    image: sonarqube:community
    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:12
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
    volumes:
      - postgresql:/var/lib/postgresql
      - postgresql_data:/var/lib/postgresql/data

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

启动

docker-compose -f compose-sonarqube.yml up

登录

端口:9000

账号:admin

密码:admin

集成Gitlab

获取私钥

file 勾选api和read_user,其他不用勾选,过期时间可以不设置

file

sonarqube配置gitlab

file file

查看项目

file

配置

手动方式

file file 本地直接执行以下脚本即可自动上传

mvn sonar:sonar \
  -Dsonar.projectKey=tongliao_police_web_AXrl4hC7XnwxUigmqg-L \
  -Dsonar.host.url=http://121.4.23.85:9000 \
  -Dsonar.login=972afb8a29e0c64b9177f9b17fed5660e860476d

Gitlab CI/CD 自动检测

待完善

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/757965.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kong简介

Kong 是一个开源的云原生 API 网关和服务网格,它提供了强大的流量控制、请求转发、日志记录、认证和授权等功能。 一、Kong Consumer Kong Consumer 是 Kong API 网关中的一个重要概念,它代表使用你的 API 的最终用户或客户端。Consumer 的创建和配置可…

Spring AOP知识点详解

Spring AOP是 Spring最核心的能力,那到底什么是AOP呢,今天了不起带大家了解一下。 AOP是什么 AOP(Aspect Oriented Programming):面向切面编程,是OOP(面向对象编程)的一个延续,其和OOP一样,也是一种编程思想&#xff0…

在Linux下做性能分析3:perf

介绍 ftrace的跟踪方法是一种总体跟踪法,换句话说,你统计了一个事件到下一个事件所有的时间长度,然后把它们放到时间轴上,你可以知道整个系统运行在时间轴上的分布。 这种方法很准确,但跟踪成本很高。所以&#xff0…

有道云笔记迁移到自建服务器Joplin

当前有道云笔记各项业务开始逐渐向会员靠拢,如一开始不受限的多端同步现在非会员限制成了两个终端,估计以后会有越来越多的免费内容会逐渐的向会员转移,因此博主开始考虑自建服务器来搞一个云笔记服务端。 因博主已有黑群晖,并且有…

OK3588运行python程序对摄像头数据进行图像处理

OK3588运行python程序读取usb摄像头 硬件连接用工具测试验证摄像头工作正常python 读取usb摄像头并进行图像处理 硬件连接 把usb摄像头插入HOST的usb接口。 在串口终端运行 sudo v4l2-ctl --list-devices 如下图 当前的usb设备是 /dev/video74 用工具测试验证摄像头工作正常…

基于深度学习的高精度80类动物目标检测系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度80类动物目标检测识别系统可用于日常生活中或野外来检测与定位80类动物目标,利用深度学习算法可实现图片、视频、摄像头等方式的80类动物目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YO…

#4. 背包

4030: 背包 题目内容 有 n n n 个物品,每个物品有大小 w i w_i wi​ 和价值 v i v_i vi​,再给定一个整数 k k k 和背包大小 m m m,对每个 1 ≤ i ≤ n − k 1 1 \le i \le n - k 1 1≤i≤n−k1,求出如果只能选择 i i …

Linux中makefile

第一个版本的makefile Makefile的依赖是从上至下的,换句话说就是目标文件是第一句里的目标,如果不满足执行依赖,就会继续向下执行。如果满足了生成目标的依赖,就不会再继续向下执行了。 Make会自动寻找依赖条件所用到的文件&…

uni-app的H5版本下载跨域问题

前端能正常访问图片,但无法下载 因为路径不经过业务代码,所以需要在nginx配置跨域 代码: add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods GET, POST, OPTIONS; add_header Access-Control-Allow-H…

【黑客】网络安全靠自学?你不要命了!

1️⃣网安现状 ❗本文面向所有 想要涉足网安领域 或 已经涉足但仍处在迷茫期 的伙伴,如果你月薪达到了3w,那么请你离开。 如果没有,希望你继续看下去,因为你人生的转折点将从这篇文章开始。 ✈️网络安全,一个近几年大…

路径规划算法:基于斑马优化的路径规划算法- 附代码

路径规划算法:基于斑马优化的路径规划算法- 附代码 文章目录 路径规划算法:基于斑马优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法斑马…

Keil5新建51单片机demo工程模板

51单片机新建工程使用到的软件有keil5,首先安装好keil5软件,安装教程在:【Keil(C51)介绍、下载、安装、注册与2个补丁】Keil(C51)介绍、下载、安装与2个补丁_西晋的no1的博客-CSDN博客 一、新建一个空工程 …

【QT】——基础窗口类QMainWindow

目录 1.概念 2.菜单栏——QMenuBar 3.工具栏 添加QAction 工具栏属性设置 5.状态栏——QStatusBar 6 停靠窗口 属性设置 1.概念 QMainWindow 是标准基础窗口中结构最复杂的窗口,QMainWindow继承QWidget,他在QWidget的基础上提供了菜单栏&#…

网络编程 socket

目录 网络编程 套接字(socket)1. 认识端口号2. TCP协议3. UDP协议4. 网络字节序列5. 常见的套接字6. socket编程接口6.1 socket常见APIsocket函数recvfrom函数sendto函数read函数 从tcp socket中读取接收数据 6.2 sockaddr结构6.3 地址转换函数6.4 udp s…

input输入日期时间,自动格式化组件/工具

input输入日期时间,自动格式化组件/工具 组件/工具使用说明 只能输入日期时间,不能选择日期时间格式 yyyy-MM-dd HH:mm:ss基于VUE框架输入效果见下图 组件/工具解决的痛点 组件库日期时间组件,选日期时间很花时间 例如想快速得到 2021-1…

OJ练习第137题——有序链表转换二叉搜索树

有序链表转换二叉搜索树 力扣链接:109. 有序链表转换二叉搜索树 题目描述 给定一个单链表的头节点 head ,其中的元素 按升序排序 ,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右…

[golang gin框架] 40.Gin商城项目-微服务实战之Captcha验证码微服务

本次内容需要 gin框架基础知识, golang微服务基础知识才能更好理解 一.Captcha验证码功能引入 在前面,讲解了微服务的架构等,这里,来讲解前面商城项目的 Captcha验证码 微服务 ,captcha验证码功能在前台,后端 都要用到 ,可以把它 抽离出来 ,做成微服务功能 编辑 编辑 这个验证码…

MySQL 第七天作业 nosql作业

作业一:string list hash结构中,每个至少完成5个命令,包含插入 修改 删除 查询,list 和hash还需要增加遍历的操作命令 1、 string类型数据的命令操作: (1) 设置键值: set key1 re…

C++基础与深度解析01——函数基本组成+函数传参的三种方法

0.前期准备 请安装Visual Studio 并学习基本的新建项目、新建CPP文件以及运行代码。 1.从Hello World 开始 1.1代码内容 函数功能&#xff1a;打印“Hello World” #include<iostream> int main() { std::cout << "Hello World" << std::endl…