云原生 · DevOps | Sonar Qube
创始人
2024-01-19 13:48:09
0

在这里插入图片描述
啊我摔倒了..有没有人扶我起来学习....


👱个人主页:《CGod的个人主页》\color{Darkorange}{《CGod的个人主页》}《CGod的个人主页》交个朋友叭~
💒个人社区:《编程成神技术交流社区》\color{Darkorange}{《编程成神技术交流社区》}《编程成神技术交流社区》加入我们,一起高效学习,收割好Offer叭~
🌱刷题链接:《LeetCode》\color{Darkorange}{《LeetCode》}《LeetCode》快速成长的渠道哦~


目录

  • 前言
  • 一、Sonar Qube介绍
  • 二、Sonar Qube环境搭建
    • 2.1 Sonar Qube安装
    • 2.2 安装中文插件
  • 三、Sonar Qube基本使用
    • 3.1 Maven实现代码检测
    • 3.2 Sonar-scanner实现代码检测


前言

Sonar Qube是一个开源的代码分析平台,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,可以检测出重复代码、代码漏洞、代码规范和安全性漏洞的问题


一、Sonar Qube介绍

Sonar Qube是一个开源的代码分析平台,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,可以检测出重复代码、代码漏洞、代码规范和安全性漏洞的问题。

Sonar Qube可以与多种软件整合进行代码扫描,比如Maven,Gradle,Git,Jenkins等,并且会将代码检测结果推送回Sonar Qube并且在系统提供的UI界面上显示出来

Sonar Qube的UI界面
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nQmvlkYk-1667449847954)(Pictures/image-20211129190039986.png)]

二、Sonar Qube环境搭建

2.1 Sonar Qube安装

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

并且这里会安装Sonar Qube的长期支持版本8.9

  • 拉取镜像

    docker pull postgres
    docker pull sonarqube:8.9.3-community
    
  • 编写docker-compoe.yml

    version: "3.1"
    services:db:image: postgrescontainer_name: dbports:- 5432:5432networks:- sonarnetenvironment:POSTGRES_USER: sonarPOSTGRES_PASSWORD: sonarsonarqube:image: sonarqube:8.9.3-communitycontainer_name: sonarqubedepends_on:- dbports:- "9000:9000"networks:- sonarnetenvironment:SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonarSONAR_JDBC_USERNAME: sonarSONAR_JDBC_PASSWORD: sonar
    networks:sonarnet:driver: bridge
    
  • 启动容器

    docker-compose up -d
    
  • 需要设置sysctl.conf文件信息

    设置vm.max_map_count
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O62yiGIl-1667449847955)(Pictures/image-20211207145215817.png)]
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AChcgqsb-1667449847955)(Pictures/image-20211207145342350.png)]

    并执行命令刷新

    sysctl -p
    
  • 重新启动需要一定时间启动,可以可以查看容器日志,看到如下内容代表启动成功

    容器日志
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yDFiDid0-1667449847955)(Pictures/image-20211129191426344.png)]
  • 访问Sonar Qube首页

    登录
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mJzCdvur-1667449847956)(Pictures/image-20211129191537050.png)]
  • 还需要重新设置一次密码

    重新设置密码
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kAv0SWnf-1667449847956)(Pictures/image-20211129193824428.png)]
  • Sonar Qube首页

    Sonar Qube首页
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rb8Dwrj2-1667449847957)(Pictures/image-20211129194148239.png)]

2.2 安装中文插件

安装中文插件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mu2LMlmG-1667449847957)(Pictures/image-20211129194621820.png)]

安装成功后需要重启,安装失败重新点击install重装即可。

安装成功后,会查看到重启按钮,点击即可

重启按钮
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kEnhsfdh-1667449847957)(Pictures/image-20211129194748765.png)]

重启后查看效果

首页效果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N08K4aYm-1667449847958)(Pictures/image-20211129194931944.png)]

三、Sonar Qube基本使用

Sonar Qube的使用方式很多,Maven可以整合,也可以采用sonar-scanner的方式,再查看Sonar Qube的检测效果

3.1 Maven实现代码检测

  • 修改Maven的settings.xml文件配置Sonar Qube信息

    sonartrueadmin123456789http://192.168.11.11:9000
    
    
  • 在代码位置执行命令:mvn sonar:sonar

    执行代码检测
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rBQw7Kmn-1667449847958)(Pictures/image-20211129195430146.png)]
  • 查看Sonar Qube界面检测结果

    Sonar Qube检测结果
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CfWXwKsh-1667449847958)(Pictures/image-20211129195503762.png)]

3.2 Sonar-scanner实现代码检测

  • 下载Sonar-scanner:https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/

    下载4.6.x版本即可,要求Linux版本

  • 解压并配置sonar服务端信息

    • 由于是zip压缩包,需要安装unzip解压插件

      yum -y install unzip
      
    • 解压压缩包

      unzip sonar-scanner-cli/sonar-scanner-cli-4.6.0.2311-linux.zip
      
    • 配置sonarQube服务端地址,修改conf下的sonar-scanner.properties

      配置服务端信息
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-05jJurEi-1667449847959)(Pictures/image-20211130140043382.png)]
  • 执行命令检测代码

    # 在项目所在目录执行以下命令
    ~/sonar-scanner/bin/sonar-scanner -Dsonar.sources=./ -Dsonar.projectname=demo -Dsonar.projectKey=java -Dsonar.java.binaries=target/
    

    Ps:主要查看我的sonar-scanner执行命令的位置

    查看日志信息
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KlLRjHDK-1667449847959)(Pictures/image-20211130141303457.png)]
  • 查看SonarQube界面检测结果

    检测结果
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2b6KKjZX-1667449847959)(Pictures/image-20211130144608025.png)]

在这里插入图片描述

相关内容

热门资讯

小学安全工作计划 【精选】小学安全工作计划汇编8篇  日子如同白驹过隙,我们又将迎来新一轮的努力,为此需要好好地写一份...
小学综合实践工作计划 小学综合实践工作计划(精选20篇)  光阴迅速,一眨眼就过去了,我们又有了新的工作,是时候认真思考工...
机器人误差动力学与PID控制 #机器人 #控制 #误差动力学 #设定点控制 #计算力矩控制器 #PID控制 详细可参考书本:《现代...
3.19百度移动端 一连三... 记录一下第一次面试过程,积德求offer😭 预约的3.19上午九点的面...
如何学习深度学习 深度学习是机器学习领域中的一个分支,它通过多层神经网络来建模和解决各种问题。深度学习已...
秋季学期幼儿园教师的工作计划 2021年秋季学期幼儿园教师的工作计划(精选5篇)  时间过得真快,总在不经意间流逝,我们的工作又迈...
小学班级工作计划 小学班级工作计划(通用17篇)  时间过得飞快,我们的工作又进入新的阶段,为了今后更好的工作发展,此...
0-1背包问题dp[][]/d... 先推荐个视频b站算法训练营一、类型1,重量限制题目:给定N个物品,每个物...
教学工作计划 精选教学工作计划范文集锦5篇  时间的脚步是无声的,它在不经意间流逝,成绩已属于过去,新一轮的工作即...
幼儿园秋季园务工作计划 幼儿园2020秋季园务工作计划  一、指导思想:  本学期我们根据园务计划,为幼儿提供安全、健康、丰...
小学上学期学校语文教研工作计... 小学上学期学校语文教研工作计划范文(精选4篇)  时光在流逝,从不停歇,迎接我们的将是新的生活,新的...
【蓝桥杯集训25】背包DP(5... 目录 01背包板子 完全背包板子 多重背包板子 分组背包板子 2. 01背包问题 - 每种物品只有一...
基于samba源码的ubunt... 本节在ubuntu18.4的系统上实现samba服务器的安装,并利用samba服务器搭...
记录docker compos... docker-compose简介 在本专栏的第一篇文章中传送门,我们已经了解到了doc...
物业年度工作计划 【推荐】物业年度工作计划范文合集10篇  时间过得太快,让人猝不及防,我们又将接触新的知识,学习新的...
我终于搞懂了浏览器缓存机制 一、什么是缓存 网上讲了一大堆官方的说辞,看绕了反而,我这里通俗的理解就...
最新九年级化学上学期教学工作... 最新九年级化学上学期教学工作计划  一、学生基本情况分析:  化学是一门九年级刚开设的新课程,与生活...
部门个人工作计划 【热门】部门个人工作计划3篇  人生天地之间,若白驹过隙,忽然而已,我们的工作又将在忙碌中充实着,在...
MySQL与分布式:主从复制 文章目录MySQL与分布式一、Linux下载 MySQL二、主从复制①修改配置文件②配置主机③配置从...
webpack Tree-sh... Tree-shaking 原理:Tree Shaking 就是一种通过消除文件中未使用...