【云原生】DevOps(四):集成Sonar Qube

简介: 【云原生】DevOps(四):集成Sonar Qube

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

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

Sonar Qube的UI界面
在这里插入图片描述
二、Sonar Qube环境搭建

  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-psH0GSDZ-1657006614692)(Pictures/image-20211207145342350.png)] | 并执行命令刷新

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

容器日志

访问Sonar Qube首页

登录
在这里插入图片描述
还需要重新设置一次密码

重新设置密码
在这里插入图片描述
Sonar Qube首页

Sonar Qube首页
在这里插入图片描述

  1. 安装中文插件

安装中文插件
在这里插入图片描述
安装成功后需要重启,安装失败重新点击install重装即可。

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

重启按钮
在这里插入图片描述
重启后查看效果

首页效果
在这里插入图片描述
三、Sonar Qube基本使用
Sonar Qube的使用方式很多,Maven可以整合,也可以采用sonar-scanner的方式,再查看Sonar Qube的检测效果

  1. Maven实现代码检测

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

<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>


在代码位置执行命令:mvn sonar:sonar

执行代码检测
在这里插入图片描述
查看Sonar Qube界面检测结果

Sonar Qube检测结果
在这里插入图片描述

  1. Sonar-scanner实现代码检测

下载Sonar-scanner:下载网址

下载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

配置服务端信息
在这里插入图片描述
执行命令检测代码

在项目所在目录执行以下命令

~/sonar-scanner/bin/sonar-scanner -Dsonar.sources=./ -Dsonar.projectname=demo -Dsonar.projectKey=java -Dsonar.java.binaries=target/
Ps:主要查看我的sonar-scanner执行命令的位置

查看日志信息
在这里插入图片描述
查看SonarQube界面检测结果

检测结果
在这里插入图片描述
四、Jenkins集成Sonar Qube
Jenkins继承Sonar Qube实现代码扫描需要先下载整合插件

  1. Jenkins安装插件

下载Sonar Qube插件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. Jenkins配置Sonar Qube

开启Sonar Qube权限验证

开启Sonar Qube权限校验
在这里插入图片描述
获取Sonar Qube的令牌

获取令牌
在这里插入图片描述
配置Jenkins的Sonar Qube信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 配置Sonar-scanner

将Sonar-scaner添加到Jenkins数据卷中并配置全局配置

配置Sonar-scanner
在这里插入图片描述
配置任务的Sonar-scanner

配置任务的Sonar-scanner
在这里插入图片描述

  1. 构建任务

构建任务
在这里插入图片描述
在这里插入图片描述

目录
相关文章
|
22天前
|
存储 Prometheus 运维
在云原生环境中,阿里云ARMS与Prometheus的集成提供了强大的应用实时监控解决方案
在云原生环境中,阿里云ARMS与Prometheus的集成提供了强大的应用实时监控解决方案。该集成结合了ARMS的基础设施监控能力和Prometheus的灵活配置及社区支持,实现了全面、精准的系统状态、性能和错误监控,提升了应用的稳定性和管理效率。通过统一的数据视图和高级查询功能,帮助企业有效应对云原生挑战,促进业务的持续发展。
29 3
|
26天前
|
运维 Devops jenkins
DevOps实践:持续集成与持续部署在现代软件开发中的作用
【10月更文挑战第42天】在快节奏的软件开发世界里,DevOps已经成为一种提升效率、确保质量和加速交付的重要方法。本文将深入探讨DevOps的核心组成部分—持续集成(CI)和持续部署(CD)—并展示它们如何通过自动化流程优化开发周期。我们将从基础概念讲起,逐步过渡到实际操作,最终通过一个简单代码示例来演示这一过程。文章旨在为读者提供清晰的指导,帮助他们理解和实现CI/CD流程,从而在软件开发领域取得竞争优势。
|
28天前
|
Devops jenkins 测试技术
DevOps实践:自动化部署与持续集成的融合之旅
【10月更文挑战第41天】在软件开发的世界中,快速迭代和高效交付是企业竞争力的关键。本文将带你走进DevOps的核心实践——自动化部署与持续集成,揭示如何通过它们提升开发流程的效率与质量。我们将从DevOps的基本理念出发,逐步深入到具体的技术实现,最终展示一个实际的代码示例,让理论与实践相结合,为你的开发旅程提供清晰的指引。
31 4
|
1月前
|
存储 监控 Devops
DevOps实践:持续集成/持续部署(CI/CD)的实战指南
DevOps实践:持续集成/持续部署(CI/CD)的实战指南
|
1月前
|
运维 Devops jenkins
DevOps实践之持续集成与持续交付
【10月更文挑战第32天】在软件开发的快节奏世界中,DevOps已经成为提升效率和质量的关键策略。通过将开发(Development)和运维(Operations)紧密结合,DevOps促进了更快速的软件发布和更高的可靠性。本文将深入探讨DevOps的核心组成部分——持续集成(CI)和持续交付(CD),并展示如何通过实际代码示例实现它们,以帮助团队构建更加高效和稳定的软件发布流程。
|
4月前
|
敏捷开发 缓存 前端开发
阿里云云效产品使用合集之前端打包时npm安装卡住一般是什么导致的
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
敏捷开发 弹性计算 持续交付
阿里云云效产品使用合集之同一个主机部署是否支持下载多个制品
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
敏捷开发 监控 Java
阿里云云效产品使用合集之Codeup WebIDE环境下,如何使用通义灵码
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之如何进行大文件的迁移
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
敏捷开发 安全 测试技术
阿里云云效产品使用合集之如何在甘特图视图中看到负责人信息
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。

热门文章

最新文章