当前位置: 首页 > news >正文

【持续集成_03课_Jenkins生成Allure报告及Sonar静态扫描】

1、

一、构建之后的配置

1、安装allure插件

安装好之后,可以在这里搜到已经安装的

2、配置allure的allure-commandline

正常配置,是要么在工具里配置,要么在系统里配置

 allure-commandline是在工具里进行配置

两种方式进行配置

1)直接下载,比较慢

直接保存即可下载

2)通过本地的包配置

也就是到版本号这一级就可以了,不要到bin目录

3、项目构建之后的操作--生成报告

共2个步骤:

1.生成数据(告诉Jenkins你的数据在哪里)
2.通过数据生成报告(Jenkins会给你做)

 1)选择要配置的项目

2)点击配置

3) 选择构建后的操作

4) 选择步骤

5)选择构建后进行报告

 6)报告内容-配置

6.1)在工作空间查看main文件
 6.2)在main文件查看运行结果存放的文件夹的名称

6.3)在allure-report的配置里,这个路径,要配这这个文件夹的名称

7)配置完成后,这里显示allure-report

8)运行生产报告

生成对应的产生的报告

PS:Jenkins在哪里,服务器就在哪里,虚拟环境就在哪里。

9)报告信息通知项目相关人员 

9.1)方法一:企业微信-机器人

创建一个企业微信群,并且添加一个机器人,并且复制它的Webhook地址

9.1.1)在企业微信添加机器人

创建机器人,拿到机器人的webhook地址

9.1.2)下载对应程序的插件-Qy Wechat Notification

点击安装后,下载成功

9.1.3) 需要Jenkins能够访问这个地址:在system配置

9.1.4)进入项目,配置构建后的操作--企业微信通知

此时

 

9.2)方法二:邮件方式 (稍微复杂一点)

第一步:系统管理(ManageJenkins)一>系统配置(System)一>系统管理员邮件地址(发送者),设置邮箱配置

9.2.1)配置发送人邮箱--系统管理员邮箱

在system中配置 

 配置发送人--系统管理员邮箱(尽量不要使用QQ邮箱)

9.2.2)授权

授权--系统管理(ManageJenkins)一>系统配置(System)一>扩展电子邮件通知(ExtendedE-mailNotification)

 

在邮箱网页版的设置里面找到smpt的服务器地址

放到Jenkins里面,端口,默认是25

网页版邮箱这里必须是开启的

 填写授权码

获取新的授权码 

 这个授权码一般只会显示一次

 

复制后,填写

用户名是邮箱地址,密码是授权码,描述也用授权码即可

要选择添加后的授权和账号

9.2.3)项目的配置--构建后的操作

配置四项

 

第4项要打开高级设置

 找到tigger

删掉之前的

 添加always

 构建后,发送的邮件

打开报告的地址

二、使用Sonar进行静态扫描

1、什么是Sonar

 Sonar(SonarQube)是一个开源平台,用于管理源代码的质量

 2、Sonar Qube的安装

官网:Code Quality, Security & Static Analysis Tool with SonarQube | Sonar

官网下载的话,会让用jdk19的版本,这个版本太高了,安装比较麻烦,建议使用老师提供的安装包,不要自己在官网下载了。

1)直接安装老师的安装包

(建议用老师的sonar的版本,Sonar 9.7.0的版本,使用 JDK 11的版本)

2)启动

win:在当前目录打开cmd ,输入:StartSonar.bat  直接回车

启动之后,打开下面这个链接:(会有点慢),一直超时,因为比较耗资源

http://localhost:9000/

账号密码:admin admin

 打开

3)修改端口号(如果需要的话)

如果上面的9000端口被占用,那么需要修改端口,修改端口号的方法

打开上面这个文件,搜索9000

把9000修改为不一样的端口号,比如8801

4)汉化:(非必要)

汉化后

汉化:因为我们的版本是 9.7 , 但是目前是 10.X的版本,所以我们这个位置需要手动去进行下载对应的jar

包,并且放在:sonarqube-X.X/extensions/plugins目录下,然后重启Sonar Qube

 

 

需要下载 这个Jar包

Release sonar-l10n-zh-plugin-9.7 · xuhuisheng/sonar-l10n-zh · GitHub

5)官网下载

如果是官网下载的话,官网界面:

要选择免费的开源的

3、安装SonarScanner(本地/插件)

1)方法一: 通过本地的bat文件进行执行

地址:SonarScanner CLI

 拿到地址:

 

2)扫描器是以一个命令的方式进行执行。,要执行下面4个命令

2.1) 4个命令放的位置

在部署之前要扫描

 

组成应该是什么样子?

  1. SonarScanner 位置在哪里?

F:\ProjectHcEdu\cicdclass\day03\sonar-scanner\Windows\sonar-scanner-4.7.0.2747-windows\bin\sonar-scanner.bat

  1. 扫描之后项目的名字叫什么?

-D"sonar.projectKey=fuben"

  1. 扫描之后显示在什么位置 ? SonarQube地址

-D"sonar.host.url=http://127.0.0.1:9000"

  1. SonarQube地址对应的账号密码

-D"sonar.login=admin" -D"sonar.password=admin1"

方法二: 通过插件进行执行

第一步:Jenkins安装扫描器的插件:SonarQube Scanner,下载好了最好重启一下Jenkins

第二步:进行配置:tools

第三步:配置对应的信息

 3)构建结果

 

 测试就看看有没有什么影响,问题由开发来解决

 

 4、通过插件来执行

插件是不需要执行这3个命令的,

第一个位置是本地安装的位置,插件不需要。

3、4那2个命令是在tools配置的,不需要单独执行

只需要维护项目名字即可

第一步:Jenkins安装扫描器的插件:SonarQube Scanner,下载好了最好重启一下Jenkins

 

 下载完成

 第二步:进行配置:tools

 

第三步:配置对应的信息

 

 添加凭证的方式

上面这个凭证数据(srcret和描述)获取的方式,如下:

进入到Sonar Qube里面

选永不过期 

 然后回到Jenkins把刚才这个配上

第三步:配置项目

 

 

sonar.projectKey=SONAR-${JOB_NAME}-${BUILD_NUMBER}

通过变量方式获取运行项目的名字

 然后就可以去构建了。

相关文章:

【持续集成_03课_Jenkins生成Allure报告及Sonar静态扫描】

1、 一、构建之后的配置 1、安装allure插件 安装好之后,可以在这里搜到已经安装的 2、配置allure的allure-commandline 正常配置,是要么在工具里配置,要么在系统里配置 allure-commandline是在工具里进行配置 两种方式进行配置 1&#xff…...

PageHelper分页查询遇到的小问题

如果我们是这样子直接查询 pagehelper会拼接导我们的sql语句之后 这样子我们搜索出来的list&#xff0c;就是里面参杂了PageHelper的东西 所以我们可以直接转成我们的Page类型 但是如果我们搜索出来的是List<Blog>&#xff0c;我有些信息不想返回给前端&#xff0c;所以…...

【Python】组合数据类型:序列,列表,元组,字典,集合

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️Python】 文章目录 前言组合数据类型序列类型序列常见的操作符列表列表操作len()append()insert()remove()index()sort()reverse()count() 元组三种序列类型的区别 集合类型四种操作符集合setfrozens…...

algorithm算法库学习之——不修改序列的操作

algorithm此头文件是算法库的一部分。本篇介绍不修改序列的操作函数。 不修改序列的操作 all_ofany_ofnone_of (C11)(C11)(C11) 检查谓词是否对范围中所有、任一或无元素为 true (函数模板) for_each 应用函数到范围中的元素 (函数模板) for_each_n (C17) 应用一个函数对象到序…...

idea创建的maven项目pom文件引入的坐标报红原因

如下所示 我们在引入某些依赖坐标的时候&#xff0c;即使点击了右上角的mavne刷新之后还是报红。 其实这是正常现象&#xff0c;实际上是我们的本地仓库当中没有这些依赖坐标&#xff0c;而idea就会通过报红来标记这些依赖来说明在我们的本地仓库是不存在的。 那有的同学就会…...

Python面试题:Python 中的生成器(generator)是什么?有什么优点?

在Python中&#xff0c;生成器&#xff08;generator&#xff09;是一种特殊的迭代器&#xff0c;使用yield关键字生成值&#xff0c;可以逐个生成序列中的值&#xff0c;而不需要一次性将所有值加载到内存中。生成器函数在定义时使用def关键字&#xff0c;并包含一个或多个yie…...

Go语言--复合类型之map、结构体

map Go 语言中的 map(映射、字典)是一种内置的数据结构&#xff0c;它是一个无序的 key-value 对的集合&#xff0c;比如以身份证号作为唯一键来标识一个人的信息。 格式 map [keyType]valueType 在一个 map 里所有的键都是唯一的&#xff0c;而且必须是支持和!操作符的类型…...

Stable Diffusion图像的脸部细节控制——采样器全解析

文章目录 艺术地掌控人物形象好易智算原因分析为什么在使用Stable Diffusion生成全身图像时&#xff0c;脸部细节往往不够精细&#xff1f; 解决策略 局部重绘采样器总结 艺术地掌控人物形象 在运用Stable Diffusion这一功能强大的AI绘图工具时&#xff0c;我们往往会发现自己…...

CurrentHashMap巧妙利用位运算获取数组指定下标元素

先来了解一下数组对象在堆中的存储形式【数组长度&#xff0c;数组元素类型信息等】 【存放元素对象的空间】 Ma 基础信息实例数据内存填充Mark Word,ClassPointer,数组长度第一个元素第二个元素固定的填充内容 所以我们想要获取某个下标的元素首先要获取这个元素的起始位置…...

实现antd designable平台的组件拖拽功能

平台&#xff1a;designable设计器 github&#xff1a;designable 目录 1 背景2 技术栈3 组件拖拽和放置3.1 类型定义3.2 拖拽3.3 放置 1 背景 由于业务需求&#xff0c;我们需要实现designable平台的一个简易版的组件拖拽功能。 #mermaid-svg-QrxSDGe9YyGG3LbQ {font-family:…...

计算机网络-IP组播基础

一、概述 在前面的学习交换机和路由协议&#xff0c;二层通信是数据链路层间通信&#xff0c;在同一个广播域间通过源MAC地址和目的MAC地址进行通信&#xff0c;当两台主机第一次通信由于不清楚目的MAC地址需要进行广播泛洪&#xff0c;目的主机回复自身MAC地址&#xff0c;然后…...

Git删除了文件拉取时失败

本地删除了一些文件&#xff0c;远端的另一个提交修改了被删除的文件&#xff0c;vs里拉取时提示未处理的提交&#xff0c;无法继续操作&#xff0c;git gui里显示很多unstaged change的项 解决办法&#xff1a; 1、用git bash的git rm --cached filename或 git rm -r --cached…...

【面向就业的Linux基础】从入门到熟练,探索Linux的秘密(十二)-管道、环境变量、常用命令

大致介绍了一下管道、环境变量、一些常用的基本命令&#xff0c;可以当作学习笔记收藏学习一下&#xff01;&#xff01;&#xff01; 文章目录 前言 一、管道 二、环境变量 1.概念 2.查看 3.修改 4.常用环境变量 三、系统状况 总结 前言 大致介绍了一下管道、环境变量、一些常…...

Spring Boot与Apache Kafka Streams的集成

Spring Boot与Apache Kafka Streams的集成 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 一、Apache Kafka Streams简介 Apache Kafka Streams是一个用于构…...

Unity中使用VectorGraphics插件时,VectorUtils.RenderSpriteToTexture2D方法返回结果错误的解决方法

Unity中使用VectorGraphics插件时&#xff0c;如果使用VectorUtils.BuildSprite方法创建Sprite&#xff0c;那么得到的Sprite往往是一个三角网格数比较多的Sprite&#xff0c;如果想要得到使用贴图只有两个三角面的方形Sprite&#xff0c;可以使用该插件提供的VectorUtils.Rend…...

用MySQL+node+vue做一个学生信息管理系统(一):配置项目

先用npm init -y生成配置文件 在项目下新建src文件夹&#xff0c;app.js文件。src目录用来放静态资源文件&#xff0c;app.js是服务器文件&#xff0c;index.js是vue的入口文件 使用npm install express下载express框架 在app.js文件夹开启node服务&#xff0c;监听的端口为…...

2024年06月CCF-GESP编程能力等级认证Python编程二级真题解析

本文收录于专栏《Python等级认证CCF-GESP真题解析》&#xff0c;专栏总目录&#xff1a;点这里&#xff0c;订阅后可阅读专栏内所有文章。 一、单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09; 第 1 题 小杨父母带他到某培训机构给他报名参加CCF组织的GESP认证…...

Unity动画系统(2)

6.1 动画系统基础2-3_哔哩哔哩_bilibili p316 模型添加Animator组件 动画控制器 AnimatorController AnimatorController 可以通过代码控制动画速度 建立动画间的联系 bool值的设定 trigger p318 trigger点击的时候触发&#xff0c;如喊叫&#xff0c;开枪及换子弹等&#x…...

深度网络现代实践 - 深度前馈网络之反向传播和其他的微分算法篇

序言 反向传播&#xff08;Backpropagation&#xff0c;简称backprop&#xff09;是神经网络训练过程中最关键的技术之一&#xff0c;尤其在多层神经网络中广泛应用。它是一种与优化方法&#xff08;如梯度下降法&#xff09;结合使用的算法&#xff0c;用于计算网络中各参数的…...

自动化设备上位机设计 四

目录 一 设计原型 二 后台代码 一 设计原型 二 后台代码 using SimpleTCP; using SqlSugar; using System.Text;namespace 自动化上位机设计 {public partial class Form1 : Form{SqlHelper sqlHelper new SqlHelper();SqlSugarClient dbContent null;bool IsRun false;i…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式&#xff1a;多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈&#xff1a;模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展&#xff08;H2Cross架构&#xff09;&#xff1a; 适配层&#xf…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...