持续集成交付CICD:Sonarqube自动更新项目质量配置
目录
一、实验
1.Sonarqube手动自定义质量规则并指定项目
2.Sonarqube自动更新项目质量配置
一、实验
1.Sonarqube手动自定义质量规则并指定项目
(1)自定义质量规则
①新配置

②更多激活规则
③根据需求激活相应规则
④已新增配置
⑤ 查看
(2)修改质量设置(添加项目)
①点击质量配置
②修改项目
③搜索并添加
④开始扫描
⑤ 质量规则已切换为指定的devops03
(3)项目添加质量配置
①移除绑定的项目

②右上角项目配置-质量配置
③修改配置

④指定一个质量配置


⑤开始扫描
⑥质量规则已切换为指定的devops03

2.Sonarqube自动更新项目质量配置
(1)查看gradle项目质量配置为空

(2)Postman发送

(3)gradle项目已新增质量配置

(4)修改流水线
pipeline {agent { label "build"}stages {stage("Sonar"){steps{script {projectName = "devops03-maven2-service"lang = "java"profileName = "devops03"if (SearchProject(projectName)){println("${projectName} exist")} else {//项目不存在println("${projectName} not fonud")//创建项目CreateProject(projectName)//质量配置UpdateQualityProfiles(lang, projectName, profileName)}}}}}
}def SonarRequest(apiUrl,method){withCredentials([string(credentialsId: "855da77c-ad38-4f06-a941-3a5afcf6bbc6", variable: 'SONAR_TOKEN')]) {sonarApi = "http://192.168.204.8:9000/api"response = sh returnStdout: true,script: """curl --location \--request ${method} \"${sonarApi}/${apiUrl}" \--header "Authorization: Basic ${SONAR_TOKEN}""""// json格式化try {response = readJSON text: """ ${response - "\n"} """} catch(e){response = readJSON text: """{"errors" : true}"""}return response}
}//查找项目
def SearchProject(projectName){apiUrl = "projects/search?projects=${projectName}"response = SonarRequest(apiUrl,"GET")if (response.paging.total == 0){return false}return true}//创建项目
def CreateProject(projectName){apiUrl = "projects/create?name=${projectName}&project=${projectName}"response = SonarRequest(apiUrl,"POST")try{if (response.project.key == projectName ) {println("Project Create success!...")return true}}catch(e){println(response.errors)return false}
}// 更新质量阈
def UpdateQualityProfiles(lang, projectName, profileName){apiUrl = "qualityprofiles/add_project?language=${lang}&project=${projectName}&qualityProfile=${profileName}"response = SonarRequest(apiUrl,"POST")if (response.errors != true){println("ERROR: UpdateQualityProfiles ${response.errors}...")return false} else {println("SUCCESS: UpdateQualityProfiles ${lang} > ${projectName} > ${profileName}" )return true}
}
(5)任意项目进入回放运行

(6)成功

(7)sonarqube已新增maven2项目

(8)并自动实现质量配置
(9)本地代码扫描
sonar-scanner -Dsonar.host.url=http://192.168.204.8:9000 \
-Dsonar.projectKey=devops03-maven2-service \
-Dsonar.projectName=devops03-maven2-service \
-Dsonar.projectVersion=1.2 \
-Dsonar.login=admin \
-Dsonar.password=Admin123 \
-Dsonar.ws.timeout=30 \
-Dsonar.projectDescription="my first project" \
-Dsonar.links.homepage=http://192.168.204.8:82/devops03/devops03-maven5-service \
-Dsonar.links.ci=http://192.168.204.15:8080/job/devops03/job/devops03-maven-service/ \
-Dsonar.sources=src \
-Dsonar.sourceEncoding=UTF-8 \
-Dsonar.java.binaries=target/classes \
-Dsonar.java.test.binaries=target/test-classes \
-Dsonar.java.surefire.report=target/surefire-reports

(10)maven2项目采用的质量阈为devops03

相关文章:
持续集成交付CICD:Sonarqube自动更新项目质量配置
目录 一、实验 1.Sonarqube手动自定义质量规则并指定项目 2.Sonarqube自动更新项目质量配置 一、实验 1.Sonarqube手动自定义质量规则并指定项目 (1)自定义质量规则 ①新配置 ②更多激活规则③根据需求激活相应规则④已新增配置 ⑤ 查看 &#x…...
Linux设置Docker自动创建Nginx容器脚本
文章目录 前言一、本地新建脚本二、复制本地脚本到服务器三、执行服务器脚本总结如有启发,可点赞收藏哟~ 前言 一、本地新建脚本 在本地新建nginx-generator.sh脚本文件,并保存以下内容 主要动态定义两个变量(容器名称/服务器本地文件名、端…...
技术博客:Vue中各种混淆用法汇总
技术博客:Vue中各种混淆用法汇总 摘要 本文主要介绍了在Vue中使用的一些常见混淆用法,包括new Vue()、export default {}、createApp()、Vue.component、Vue3注册全局组件、Vue.use()等,以及如何使用混淆器对代码进行加固,保护应…...
【python】Python生成GIF动图,多张图片转动态图,pillow
pip install pillow 示例代码: from PIL import Image, ImageSequence# 图片文件名列表 image_files [car.png, detected_map.png, base64_image_out.png]# 打开图片 images [Image.open(filename) for filename in image_files]# 设置输出 GIF 文件名 output_g…...
python/matlab图像去雾/去雨综述
图像去雾和去雨是计算机视觉领域的两个重要任务,旨在提高图像质量和可视化效果。本文将综述图像去雾和去雨的算法、理论以及相关项目代码示例。 一、图像去雾算法 基于暗通道先验的方法: 这是广泛应用于图像去雾的经典算法之一。该方法基于一个观察&…...
Docker+jenkins+gitlab实现持续集成
1.安装环境 服务器ip虚拟机版本192.168.5.132centos7.6192.168.5.152centos7.6 2. 安装docker 安装必要的一些系统工具 yum install -y yum-utils device-mapper-persistent-data lvm2添加软件源信息,要确保centos7能上外网 yum-config-manager --add-repo http:…...
Web前端JS如何获取 Video/Audio 视音频声道(左右声道|多声道)、视音频轨道、音频流数据
写在前面: 根据Web项目开发需求,需要在H5页面中,通过点击视频列表页中的任意视频进入视频详情页,然后根据视频的链接地址,主要是 .mp4 文件格式,在进行播放时实时的显示该视频的音频轨道情况,并…...
MySQL生成UUID并去除-
uuid()函数 uuid() 函数可以使mysql生成uuid,但是uuid中存在-,如下图: 去除uuid的- 默认生成的uuid含有-,我们可以使用replace函数替换掉-,SQL如下 select replace(uuid(),"-","") as uuid;Insert语句中使用UUID 如果…...
包与字符串
包是分类管理的需要,建立包用:package,包中类的引用import 学习使用javaAPI中的字符串类String,学会其成员方法的使用 (必看)eclipse包的分层等级结构设置 因为eclipse的包的结构默认是平行等级的,所以要手…...
【Gradle】mac环境安装Gradle及配置
官网安装说明:Gradle | Installation 由于Gradle运行依赖jvm,所以事先需要安装jdk,并确认你的jdk版本和gradle版本要求的对应关系,这个官网上有说明,但是我试了一下不太准确,供参考,链接如下&a…...
使用C语言操作kafka ---- librdkafka
1 安装librdkafka git clone https://github.com/edenhill/librdkafka.git cd librdkafka git checkout v1.7.0 ./configure make sudo make install sudo ldconfig 在librdkafka的examples目录下会有示例程序。比如consumer的启动需要下列参数 ./consumer <broker> &…...
误用STM32串口发送标志位 “USART_FLAG_TXE” “USART_FLAG_TC”造成的BUG
当你使用串口发送数据时是否出现过这样的情况: 1.发送时第一个字节丢失。 2.发送时出现莫名的字节丢失。 3.各种情况字节丢失。 1.先了解一下串口发送的流程图(手动描绘): 可以假想USART_FLAG_TXE是用于检测"弹仓"&…...
指针(三)
函数指针 定义:整型指针是指向整形的指针,数组指针式指向数组的指针,其实函数指针就是指向函数的指针。 函数指针基础: ()优先级要高于*;一个变量除去了变量名,便是它的变量类型;一个指针变量…...
labelimg遇到的标签修改问题:修改一张图像的标签时,保存后导致classes.txt改变
问题描述:修改一张图像的标签时候, classes.txt 会同步更新,导致重新生成了 classes.txt 但是这个 classes.txt 只有你现在写的那个类别名,以前的没有了。 解决:设置一个 predefined_classes.txt,内容和模…...
Spring Cloud Gateway使用和配置
Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。Spring Cloud Gateway作为Spring Cloud生态系中的网关ÿ…...
RT-Thread 时钟管理
时钟管理 时钟是非常重要的概念,和朋友出去游玩需要约定时间,完成任务也需要花费时间,生活离不开时间。 操作系统也一样,需要通过时间来规范其任务的执行,操作系统中最小的时间单位是时钟节拍(OS Tick&…...
User: zhangflink is not allowed to impersonate zhangflink
使用hive2连接进行添加数据是报错: [08S01][1] Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask. User: zhangflink is not allowed to impersonate zhangflink 有些文章说需要修…...
深入理解Sentinel系列-1.初识Sentinel
👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码、Kafka原理、分布式技术原理🔥如果感觉博主的文章还不错的话ÿ…...
vue中字典的使用
1.引入字典 dicts: [order_status,product_type],2.表单中使用 select下拉 <el-form-item label"订单状态" prop"orderStatus"><el-select v-model"form.orderStatus" clearable placeholder"请输入订单状态" :disabled"…...
AWS基于x86 vs Graviton(ARM)的RDS MySQL性能对比
概述 这是一个系列。在前面,我们测试了阿里云经济版(“ARM”)与标准版的性能/价格对比;华为云x86规格与ARM(鲲鹏增强)版的性能/价格对比。现在,再来看看AWS的ARM版本的RDS情况 在2018年&#…...
如何用RecastNavigation构建完整的游戏AI导航系统:从入门到实战
如何用RecastNavigation构建完整的游戏AI导航系统:从入门到实战 【免费下载链接】recastnavigation Navigation-mesh Toolset for Games 项目地址: https://gitcode.com/gh_mirrors/re/recastnavigation 想要为你的游戏打造智能的AI导航系统吗?Re…...
Harmonyos应用实例233:数独逻辑教练 (综合与实践)
5. 数独逻辑教练 (综合与实践) 功能介绍: 提供一个 4x4 或 6x6 的入门级数独游戏,专为训练逻辑推理设计。系统随机生成题目,用户点击格子填入数字。如果填入错误,系统会给予红色高亮提示。包含“提示”功能,自动填入一个正确数字,帮助学生理解排除法和唯一性原理。 //…...
VRCX:基于现代Web技术栈的VRChat社交数据聚合与可视化平台架构解析
VRCX:基于现代Web技术栈的VRChat社交数据聚合与可视化平台架构解析 【免费下载链接】VRCX Friendship management tool for VRChat 项目地址: https://gitcode.com/GitHub_Trending/vr/VRCX 在虚拟现实社交平台VRChat日益复杂的社交生态中,传统客…...
如何用DiffSynth Studio实现AI舞蹈动作生成与舞台效果可视化:完整指南
如何用DiffSynth Studio实现AI舞蹈动作生成与舞台效果可视化:完整指南 【免费下载链接】DiffSynth-Studio DiffSynth Studio 是一个扩散引擎。我们重组了包括 Text Encoder、UNet、VAE 等在内的架构,保持了与开源社区模型的兼容性,同时提高了…...
用Matlab+Yalmip+Gurobi搞定微电网优化配置:从电工杯A题到实战避坑指南
MatlabYalmipGurobi微电网优化实战:从建模到竞赛应用的完整指南 微电网优化配置是能源系统研究中的经典问题,也是数学建模竞赛中的高频考点。去年电工杯A题就曾让参赛者头疼——如何在满足负荷需求的前提下,合理配置风光储系统,实…...
SenseVoice-small部署教程:国产昇腾AI芯片Ascend CANN适配进展
SenseVoice-small部署教程:国产昇腾AI芯片Ascend CANN适配进展 1. 引言:当语音识别遇上国产算力 想象一下,你正在开发一款面向医疗场景的离线语音助手,需要实时将医生的口述病历转成文字。数据隐私要求极高,不能上传…...
避坑指南:解决多Livox雷达在ROS中TF树报错‘extrapolation into the past’的完整流程
避坑指南:解决多Livox雷达在ROS中TF树报错‘extrapolation into the past’的完整流程 当你在ROS系统中整合多个Livox雷达时,突然遭遇[WARN] Lookup would require extrapolation into the past的警告信息,Rviz中点云显示异常或TF树断裂&…...
新手友好:Python3.9镜像环境配置,Jupyter和SSH两种方式任你选
新手友好:Python3.9镜像环境配置,Jupyter和SSH两种方式任你选 1. Python3.9镜像简介 Python3.9是Python语言的一个重要版本,它继承了Python一贯的简洁易读特性,同时带来了多项性能改进和新功能。这个Miniconda-Python3.9镜像为你…...
人工智能入门全景图:Nanbeige 4.1-3B带你梳理AI核心概念与技术栈
人工智能入门全景图:Nanbeige 4.1-3B带你梳理AI核心概念与技术栈 你是不是也对人工智能充满好奇,但一看到那些复杂的术语和庞大的技术栈就感到无从下手?机器学习、深度学习、神经网络、NLP、CV……这些词听起来很酷,但它们到底是…...
Ostrakon-VL-8B视觉语言模型一键部署:Anaconda环境配置保姆级教程
Ostrakon-VL-8B视觉语言模型一键部署:Anaconda环境配置保姆级教程 你是不是也对那些能看懂图片、还能跟你聊天的AI模型感到好奇?想自己动手部署一个来玩玩,结果被各种环境配置、依赖冲突搞得头大?别担心,今天咱们就来…...
