DevOps B站学习版(二)
学习地址:
01.DevOps的诞生_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Pt4y1H7Zq/?p=1&vd_source=1f09c23f556b3d6a9b7706f8db12fa54%E3%80%81
========正文开始========
找到这个地方,修改
可以写成基于标签拉取和构建工程,下面也选择Tag即可。
之前我们都是直接使用Maven打包,但是这次我们需要在打包之前做一些事情,需要把我们的代码版本切换到指定的位置:
首先,选择
其次,可以拖动这个模块,把它移动到前面,如图:
因为我们需要先切换Tag,再去进行打包和其他的一些操作。
这里使用了一个$符号,用来引进前面的tag名字
经过这样的操作之后,代码就会被切换到这个这个版本,再次被打包,最后应用,保存即可。
下一步,我们可以在git仓库中,创建一个tag标签,最简单的即可
然后再回到idea代码中,修改一些内容:
同时也修改dockerfile内容:
最后再创建一个v2.0.0的tag。
至此,我们的代码一共有两个标签了,一个是v1.0.0一个是v2.0.0,现在再去Jenkins中构建代码,就会发现是可选的,如图:
至此,版本切换的操作完成了,例如2.0版本有一些重大的bug之类的,我们就可以回退到1.0,也就实现了最基础的CICD,完成了入门。
现在我们的代码已经实现了自动构建部署,但是我们还需要丰满一下我们的框架,引入了质量检测模块,也就是sonarqube。
SonarQube的安装:
SonarQube就是一个开源的代码分析平台,可以检测代码中是否有重复的内容、魔法值等。
1.拉取镜像
2.写配置文件,内容如下:
3.运行这个镜像:docker-compose up -d
4.访问网址,默认账号密码都是admin:
配置SonarQube:
我们需要给SonarQube装一些插件
可以先来一个中文插件:
然后我们现在就开始测试一下我们的代码质量:
第一种方式,采用Maven的方式测试,
修改Maven的settings文件就可以了,加上下述内容:
重新构建项目,在命令行里面,输入
完成后,进入到页面,就可以看到结果:
第二种方式,使用sonar-scanner :
可以百度搜索安装包,下图也提供了网址:
同时,也给服务器安装一个解压命令:
下载好之后,用unzip 解压即可。
解压好之后可以移动到Jenkins的目录下:
在使用之前,要对sonar-scanner进行一些配置,cd进入conf 修改。
进来之后发现文件夹里面只有一个配置文件,修改地址即可。
完成之后,我们现在就需要使用sonar-scanner去检测我们的workspace里面的内容
会提示需要token,我们去配置即可
点击我的账号
然后再次检测,又出现了问题:
是因为没有指定sonar.projectKey,指定即可。
把SonarQube整合到Jenkins中
……
相关文章:

DevOps B站学习版(二)
学习地址: 01.DevOps的诞生_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Pt4y1H7Zq/?p1&vd_source1f09c23f556b3d6a9b7706f8db12fa54%E3%80%81 正文开始 找到这个地方,修改 可以写成基于标签拉取和构建工程,下面也选择Tag即可…...

MySQL(一)基本架构、SQL语句操作、试图
MySQL系列文章 MySQL(一)基本架构、SQL语句操作、试图 MySQL(二)索引原理以及优化 MySQL(三)SQL优化、Buffer pool、Change buffer MySQL(四)事务原理及分析 MySQL(五&a…...
MySQL事务基础知识
文章目录 一、事务简介二、事务操作1.查看事务提交方式2.设置事务提交方式3.开启事务4.提交事务5.回滚事务 三、事务四大特性ACID四、并发事务的问题五、并发事务隔离级别六、代码实例1.脏读实例2.不可重复读实例3.幻读的实例4.串行化的实现 一、事务简介 事务是一组操作的集合…...

form表单禁止浏览器自动填充密码
因为用户修改密码的时候,谷歌浏览器、edge等浏览器,总是自动将保存的密码填充到重置密码输入框中,给用户使用带来困扰。原因是因为你在登录的时候选择记住了账号和密码了,所以就会把信息存在浏览器里面,当你在修改密码的时候,由于form表单的 type="password" 所…...

ios oc button 设置
Button调整内部的子控件的位置...

山西电力市场日前价格预测【2023-07-17】
日前价格预测 预测明日(2023-07-17)山西电力市场全天平均日前电价为335.50元/MWh。其中,最高日前电价为377.51元/MWh,预计出现在06: 00。最低日前电价为271.94元/MWh,预计出现在13: 30。 价差方向预测 1:实…...

vue3功能实现
在vue2中,要实现一些方法(增删改查)一般都是写在一起的。如下图所示: 但是在vue3中,实现一个方法需要用到很多文件。 方法定义方法如下: export function classSign(phone: string) {return sign_reques…...

微服务系列文章 之 SpringCloud中遇到的一些bug
1、There was a problem with the instance info replicator 错误原因: 该服务尝试将自己作为客服端注册解决办法: 在application.yml配置文件中,设置 # 注册Eureka服务 eureka:client:# Eureka服务注册中心会将自己作为客户端来尝试注册它自…...

Linux——权限
目录 1.Shell运行原理——外壳程序 2.权限 2.1对人操作 2.2对角色和文件操作 3.常见权限问题 1.Shell运行原理——外壳程序 首先我们要明确一个概念,我们不是直接访问操作系统。为什么? 对于Windows我们是使用GUI进行操作,Shell对于Li…...

[英语单词] components;
*[kәm’pәunәnt] n. 元件, 组件, 成分 a. 组成的, 构成的 【计】 组件 【化】 组分 【医】 成分; 组元(神经元组) 有很多地方使用这个单词,在组成整体时,作为单位一内的占有比率。那为什么不用portion? 这样每一个组成部分都是一个compon…...

【观察者模式】 ——每天一点小知识
💧 观察者模式 \color{#FF1493}{观察者模式} 观察者模式💧 🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云的博客🎐 🐳 《数据结构与算法》专栏的文章图文并茂🦕…...

el-ment ui 表格组件table实现列的动态插入功能
在实际需求中我们经常遇到各种奇葩的需求,不足为奇。每个项目的需求各不相同,实现功能的思路大致是一样的。 本文来具体介绍怎么实现table表格动态插入几列。 首先实现思路有2种, 1. 插入的位置如果是已知的,我知道在哪个标题的…...
gitLab修改密码后,sourceTree如何修改密码
修改gitLab密码后,在sourceTree提交或者更新代码会报:fatal: Authentication failed for~ 简单粗暴的方法: 到C:\Users\用户\AppData\Local\Atlassian\SourceTree,找到passwd文件,并删除; 重启sourceTre…...
sop是什么意思
标准作业程序 执行复杂的日常事务所设计的内部程序 内容 所谓SOP,是 Standard Operating Procedure三个单词中首字母的大写 ,即标准作业程序,指将某一事件的标准操作步骤和要求以统一的格式描述出来,用于指导和规范日常的工作。…...

【C#】Kestrel和IIS服务器下的同步与异步配置
最近在回看自己写的代码时,发现服务配置里最开头写了两段代码,第一感觉,这是啥功能,太久有点生疏了,经过一顿搜索和回顾,简单整理如下 目录 1、Kestrel服务器1.1、跨平台1.2、高性能1.3、可扩展性1.4、安全…...

GoLand导入redis的github包失败
GoLand导入redis依赖失败 网上有下载guryburd和gomodel的,这里按照官网文档安装依赖 以下命令在项目的根目录执行 初始化一个Go模块: go mod init github.com/my/repoTo install go-redis/v9:要安装go-redis/v9: go get github.com/redis/…...

Elasticsearch原理剖析
一、 Elasticsearch结构 Elasticsearch集群方案由EsMaster、EsClient和EsNode1、EsNode2、EsNode3、EsNode4、EsNode5、EsNode6、EsNode7、EsNode8、EsNode9进程组成,如下图所示,模块说明如表下所示。 说明如表: 名称说明ClientClient使用H…...

数据在内存中的存储1(C语言进阶)
数据在内存中的存储 1.数据类型介绍1.1类型的基本归类:整形家族浮点数家族构造类型指针类型空类型 2.整形在内存中的存储2.1 原码、反码、补码2.2 大小端介绍为什么有大端和小端: 我们今天来学习数据在内存中的存储 1.数据类型介绍 前面我们已经学习了基…...
Kubernetes API Server 中启用 pprof 接口
要在 Kubernetes API Server 中启用 pprof 接口,你需要在 API Server 的启动参数或配置文件中进行相应的配置。以下是一些常见的方法: 通过启动参数启用 pprof 接口:在运行 API Server 的命令中,添加 -runtime-configapi/alltrue …...

Docker 私有仓库 harbor 搭建
🎈 作者:Linux猿 🎈 简介:CSDN博客专家🏆,华为云享专家🏆,Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊! &…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...

短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...

【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...

STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理
在城市的某个角落,一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延,滚滚浓烟弥漫开来,周围群众的生命财产安全受到严重威胁。就在这千钧一发之际,消防救援队伍迅速行动,而豪越科技消防一体化安全管控平台构建的消防“…...