【云原生】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
拉取镜像
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

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

修改密码

默认的账号与密码都是admin

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

 三、Sonar Qube基本使用

1、安装中文插件

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

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

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

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
追加一些配置

执行命令检测代码

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

三、SonarQube 整合 Jenkinsb

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

1、Jenkins 安装插件

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

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

2、构建任务

下一篇预告:集成Harbor  

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

猜你喜欢

转载自blog.csdn.net/aasd23/article/details/126875921