• 【云原生】4.3 DevOps 精讲篇——Sonar Qube


    CSDN话题挑战赛第2期
    参赛话题:学习笔记

    目录

    一、前言

     二、SonarQube 安装

    1、介绍

    2、安装

     三、Sonar Qube基本使用

    1、安装中文插件

    2、Maven 代码检测

    3、Sonar-scanner 代码检测

    三、SonarQube 整合 Jenkinsb

    1、Jenkins 安装插件

    2、构建任务


    一、前言

    之前写的一个项目(可以看看之前的博客)代码时十分的冗余,在 4.2 写到 DevOps 的原理及安装需要的插件,最后的流程图就是下面的。但是如果以后的项目代码没有一定的规范,很容易形成所谓的“屎山”。代码如何的质量检测,就要用到下面的SonarQube了。

     二、SonarQube 安装

    1、介绍

    Sonar Qube是一个开源的代码分析平台,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,可以检测出重复代码、代码漏洞、代码规范和安全性漏洞的问题。
    Sonar Qube可以与多种软件整合进行代码扫描,比如Maven,Gradle,Git,Jenkins等,并且会将代码检测结果推送回Sonar Qube并且在系统提供的UI界面上显示出来。

    官网地址

    2、安装

    Sonar Qube 7.9 版本中已经放弃了对 MySQL 的支持,并且建议在商业环境中采用 PostgreSQL, 那么 安装Sonar Qube 时需要依赖 PostgreSQL
    拉取镜像
    1. docker pull postgres
    2. docker pull sonarqube:8.9.3-community
    编写docker-compoe.yml
    1. version: "3.1"
    2. services:
    3. db:image: postgres
    4. container_name: db
    5. ports:
    6. - 5432:5432
    7. networks:
    8. - sonarnet
    9. environment:
    10. POSTGRES_USER: sonar
    11. POSTGRES_PASSWORD: sonar
    12. sonarqube:
    13. image: sonarqube:8.9.3-community
    14. container_name: sonarqube
    15. depends_on:
    16. - db
    17. ports:
    18. - "9000:9000"
    19. networks:
    20. - sonarnet
    21. environment:
    22. SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
    23. SONAR_JDBC_USERNAME: sonar
    24. SONAR_JDBC_PASSWORD: sonar
    25. networks:
    26. sonarnet:
    27. driver: bridge

    设置好了之后就开始启动了

    启动容器
    docker-compose up -d

    以 ip 地址 + 设置的端口号就能进入页面了

    修改密码

    默认的账号与密码都是admin

     第一次登录,系统会要求更改密码,这里就看自己的习惯修改密码了

     

     三、Sonar Qube基本使用

    1、安装中文插件

    简称汉化,安装之后记得重启下

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

    2、Maven 代码检测

    修改  Maven  的  settings.xml  文件配置  Sonar Qube  信息
    1. <profile>
    2. <id>sonarid>
    3. <activation>
    4. <activeByDefault>trueactiveByDefault>
    5. activation>
    6. <properties>
    7. <sonar.login>adminsonar.login>
    8. <sonar.password>123456789sonar.password>
    9. <sonar.host.url>http://192.168.11.11:9000sonar.host.url>
    10. properties>
    11. profile>

    IDEA 控制台检测

    mvn sonar:sonar

     如果有“异味”,就是我们代码不规范的地方了

    3、Sonar-scanner 代码检测

    下载 Sonar-scanner
    解压并配置 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
    追加一些配置

    执行命令检测代码

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

    三、SonarQube 整合 Jenkinsb

    Jenkins 继承 Sonar Qube 实现代码扫描需要先下载整合插件

    1、Jenkins 安装插件

    进入 Jenkins ,系统管理——> 系统配置 ——> 找到 Sonar ——> 追加配置——> 添加凭据

    注:Secret 在SonarQube里面 “生成令牌” 
    进入 Jenkins ,系统管理——>全局工具配置

     

    2、构建任务

     

    下一篇预告:集成Harbor  

     不积跬步无以至千里,趁年轻,使劲拼,给未来的自己一个交代!向着明天更好的自己前进吧!

  • 相关阅读:
    C陷阱与缺陷 第6章 预处理器 6.2 宏并不是函数
    ConcurrentHashMap
    Shiro【散列算法、过滤器 、Shiro会话、会话管理器、权限表设计】(三)-全面详解(学习总结---从入门到深化)
    网络协议的重要性与应用:理解进程间通信和网络分层结构(上)
    Leetcode刷题详解——在排序数组中查找元素的第一个和最后一个位置
    FPGA 学习笔记:Vivado 2018.2 MicroBlaze Uartlite 配置
    IDEA断点调试
    mac使用squidMan设置代理服务器
    Android—过渡按钮的简单实现
    概率论的相关知识
  • 原文地址:https://blog.csdn.net/aasd23/article/details/126875921