【云原生】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. 构建任务

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

目录
相关文章
|
3月前
|
Cloud Native 中间件 调度
云原生信息提取系统:容器化流程与CI/CD集成实践
本文介绍如何通过工程化手段解决数据提取任务中的稳定性与部署难题。结合 Scrapy、Docker、代理中间件与 CI/CD 工具,构建可自动运行、持续迭代的云原生信息提取系统,实现结构化数据采集与标准化交付。
109 1
云原生信息提取系统:容器化流程与CI/CD集成实践
|
11月前
|
存储 监控 Devops
DevOps实践:持续集成/持续部署(CI/CD)的实战指南
DevOps实践:持续集成/持续部署(CI/CD)的实战指南
|
11月前
|
存储 Prometheus 运维
在云原生环境中,阿里云ARMS与Prometheus的集成提供了强大的应用实时监控解决方案
在云原生环境中,阿里云ARMS与Prometheus的集成提供了强大的应用实时监控解决方案。该集成结合了ARMS的基础设施监控能力和Prometheus的灵活配置及社区支持,实现了全面、精准的系统状态、性能和错误监控,提升了应用的稳定性和管理效率。通过统一的数据视图和高级查询功能,帮助企业有效应对云原生挑战,促进业务的持续发展。
262 3
|
11月前
|
运维 Devops jenkins
DevOps实践:持续集成与持续部署在现代软件开发中的作用
【10月更文挑战第42天】在快节奏的软件开发世界里,DevOps已经成为一种提升效率、确保质量和加速交付的重要方法。本文将深入探讨DevOps的核心组成部分—持续集成(CI)和持续部署(CD)—并展示它们如何通过自动化流程优化开发周期。我们将从基础概念讲起,逐步过渡到实际操作,最终通过一个简单代码示例来演示这一过程。文章旨在为读者提供清晰的指导,帮助他们理解和实现CI/CD流程,从而在软件开发领域取得竞争优势。
|
11月前
|
Devops jenkins 测试技术
DevOps实践:自动化部署与持续集成的融合之旅
【10月更文挑战第41天】在软件开发的世界中,快速迭代和高效交付是企业竞争力的关键。本文将带你走进DevOps的核心实践——自动化部署与持续集成,揭示如何通过它们提升开发流程的效率与质量。我们将从DevOps的基本理念出发,逐步深入到具体的技术实现,最终展示一个实际的代码示例,让理论与实践相结合,为你的开发旅程提供清晰的指引。
182 4
|
6月前
|
运维 Cloud Native 测试技术
极氪汽车云原生架构落地实践
随着极氪数字业务的飞速发展,背后的 IT 技术也在不断更新迭代。极氪极为重视客户对服务的体验,并将系统稳定性、业务功能的迭代效率、问题的快速定位和解决视为构建核心竞争力的基石。
|
10月前
|
运维 Cloud Native 持续交付
深入理解云原生架构及其在现代企业中的应用
随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
219 13
|
5月前
|
人工智能 Cloud Native 容灾
深圳农商银行三代核心系统全面投产 以云原生架构筑牢数字化转型基石
深圳农商银行完成第三代核心系统全面上云,日均交易超3000万笔,峰值处理效率提升2倍以上。扎根深圳70余年,与阿里云共建“两地三中心”分布式云平台,实现高可用体系及全栈护航。此次云原生转型为行业提供可复制样本,未来将深化云计算与AI合作,推动普惠金融服务升级。
381 17
|
5月前
|
存储 Cloud Native 关系型数据库
PolarDB开源:云原生数据库的架构革命
本文围绕开源核心价值、社区运营实践和技术演进路线展开。首先解读存算分离架构的三大突破,包括基于RDMA的分布式存储、计算节点扩展及存储池扩容机制,并强调与MySQL的高兼容性。其次分享阿里巴巴开源治理模式,涵盖技术决策、版本发布和贡献者成长体系,同时展示企业应用案例。最后展望技术路线图,如3.0版本的多写多读架构、智能调优引擎等特性,以及开发者生态建设举措,推荐使用PolarDB-Operator实现高效部署。
275 3
|
10月前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。

热门文章

最新文章