云原生 · DevOps | Sonar Qube

举报
CGod 发表于 2022/11/04 11:22:52 2022/11/04
【摘要】 Sonar Qube是一个开源的代码分析平台,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,可以检测出重复代码、代码漏洞、代码规范和安全性漏洞的问题

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


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


@TOC


前言

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: postgres
        container_name: db
        ports:
          - 5432:5432
        networks:
          - sonarnet
        environment:
          POSTGRES_USER: sonar
          POSTGRES_PASSWORD: sonar
      sonarqube:
        image: sonarqube:8.9.3-community
        container_name: sonarqube
        depends_on:
          - db
        ports:
          - "9000:9000"
        networks:
          - sonarnet
        environment:
          SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
          SONAR_JDBC_USERNAME: sonar
          SONAR_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信息

    <profile>
        <id>sonar</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <sonar.login>admin</sonar.login>
            <sonar.password>123456789</sonar.password>
            <sonar.host.url>http://192.168.11.11:9000</sonar.host.url>
        </properties>
    </profile>
    
  • 在代码位置执行命令: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)]

在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。