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

DevOps工程技术价值流:GitLab源码管理与提交流水线实践

在当今快速迭代的软件开发环境中,DevOps(开发运维一体化)已经成为提升软件交付效率和质量的关键。而GitLab,作为一个全面的开源DevOps平台,不仅提供了强大的版本控制功能,还集成了持续集成/持续交付(CI/CD)、容器编排、监控等一系列工具,为团队提供了从代码管理到产品发布的端到端解决方案。本文将重点介绍GitLab在源码管理方面的应用,以及如何通过提交流水线实践实现持续集成。

一、概述

GitLab是一个自我托管的Git仓库管理系统,它提供了免费的公开和私有仓库、问题追踪、维基等功能,并支持团队协作,从项目规划到监控安全的全流程管理。GitLab通过Web界面简化了Git的使用,提高了开发效率。同时,GitLab还提供了自己的持续集成(CI)系统,允许用户轻松管理项目,并获得可视化的构建和测试结果。

二、GitLab安装部署

单独准备服务器,采用Docker安装,docker安装参照:

https://blog.csdn.net/heijunwei/article/details/128706198?spm=1001.2014.3001.5501

1、查看GitLab镜像

docker search gitlab

2、拉取GitLab镜像

docker pull gitlab/gitlab-ce

2、准备docker-compose.yml文件

version: '3.9'
services:gitlab:image: 'gitlab/gitlab-ce:latest'container_name: gitlabrestart: alwaysenvironment:GITLAB_OMNIBUS_CONFIG: |external_url 'http://ip:post'gitlab_rails['gitlab_shell_ssh_port'] = 2224ports:- 'post:post'- '2224:2224'volumes:- './config:/etc/gitlab'- './logs:/var/log/gitlab'- './data:/var/opt/gitlab'

4、启动容器(需要稍等一小会……)

docker-compose up -d

5、查看root用户密码并登陆

docker exec -it gitlab cat /etc/gitlab/initial_root_password

6、第一次登录后需要修改密码

三、GitLab工作流

GitLab是一个分布式版本控制系统,可以实现代码的存储、版本控制和协作。它使用Git作为代码仓库,支持团队多人协作和开发,保证代码的完整性。

1、创建项目组和项目

在GitLab上面,可以使用项目组对同一组织或者类型的项目进行分类,用项目组来管理项目,用项目来存储实际的代码。

1.1创建项目组

项目组(Group)是GitLab中管理项目的主要方式。在项目组下可以创建多个项目,并定义自己的成员和权限。项目组通常是由一个团队或部门的人一起使用的,他们可以共享代码并协同处理任务。

选择Menu→Groups→Create group创建项目组,如图

如果存在其他版本控制系统,如GitHub等,可以使用Import group导入其他系统中的项目组。这里选择Create group创建项目组

输入项目组的名称。项目组类型分为Public(公开)、Private(私有)、Internal(内部访问),这里我们选择Private类型项目组,单击Create group按钮完成创建,如图

1.2创建项目

项目(project)是GitLab中的每个代码库,它们与项目组相关联。每个项目都有一个Git存储库用于存储原始的应用代码和其他文件。

2、分支开发策略

通过标准化的流程和最佳实践,确保代码组织清晰、版本控制高效、变更管理有序,从而提高软件开发的质量、效率和可维护性,支持团队协作和持续集成/持续部署流程,最终实现项目的长期成功和发展

参加文档:https://blog.csdn.net/heijunwei/article/details/143820569?spm=1001.2014.3001.5502

三、提交流水线实践

提交流水线是指在代码提交阶段自动触发一系列构建、测试和部署任务,以确保每次提交都能够被及时验证并给出反馈。使用GitLab和Jenkins的集成,可以轻松实现提交流水线。

1、Jenkins配置

Jenkins Pipeline需要被GitLab触发。使用Generic Webhook插件为Jenkins Pipeline开启Webhook特性。

1.1创建Pipeline

创建一个新的Jenkins Pipeline,名称为devops-demo-service,类型选择“流水线

1.2开启触发器

开启Generic Webhook Trigger触发器,添加一个Post connect parameters用于捕获GitLab传递的数据,如分支名称、项目地址等。这里定义的变量名称为WebHookData

上述配置将GitLab传递的数据存储到WebHookData变量中,在Jenkins Pipeline中可以通过变量的方式解析变量的值。配置Jenkins Pipeline的触发Token。为了保证Token的唯一性,这里采用当前项目名称

开启Debug调试模式,如图中的两个选项有助于排查集成问题。例如,集成时因为变量、参数导致的问题可以在Jenkins Pipeline构建日志中显示出来。

1.3触发测试

当我们配置好触发器后,可以使用curl命令进行测试触发,命令如下。

curl http://192.168.1.200:8080/generic-webhook-trigger/invoke?token= devops-demo-service

2、GitLab配置

GitLab内置Webhook特性,可以在代码库开启并配置对应的事件以触发Webhook

2.1 项目开启Webhook

进入代码库,导航到Settings,单击左侧的Webhooks进入配置页面。在URL文本框中填写Jenkins的触发地址,在Trigger选项组中选择Push events触发事件,如图所示。

可以看到当前代码库具有Push events时就会触发Jenkins。代码提交、创建标签都属于Push events。确认参数无误后,单击Add webhook按钮完成添加,如图所示。可以看到当前代码库具有Push events时就会触发Jenkins。代码提交、创建标签都属于Push events。确认参数无误后,单击Add webhook按钮完成添加,如图所示。

提示:如果提示“Url is blocked: Requests to the local network are not allowed”错误信息,需要开启GitLab的local network配置。导航到Admin管理页面,选择Settings,单击Network进入配置页面。选中“Allow requests to the local network from web hooks and services”复选框。单击Save changes按钮保存配置,

2.2 测试Webhook

进入代码库,导航到Settings,单击Webhooks进入配置页面。将鼠标滚动到页面最下方可以看到已添加的Webhook。在Test下拉列表框中选择Push events选项可以进行模拟触发,如图所示。

2.3 编写Pipeline

在Jenkins Pipeline中,需要编写脚本以解析Webhook数据、下载代码并执行构建、测试和部署任务。通过读取Webhook数据中的项目地址、分支名称、提交ID等信息,可以确定需要构建的代码版本和分支。然后,使用Git命令下载代码,并执行后续的构建和测试任务。

2.3.1 解析Webhook数据

编写Jenkins Pipeline读取GitLab参数并解析出分支名称和仓库地址。代码如下

//GitLab传递的数据{}
println("${WebHookData}")//数据格式化
webHookData = readJSON text: "${WebhookData}"//提取仓库信息
env.srcUrl = webHookData["project"]["git_http_url"] //项目地址
env.branchName = webHookData["ref"] - "refs/heads/" //分支
env.commitId = webHookData["checkout_sha"]          //提交ID
env.commitUser = webHookData["user_username"]                //提交人
env.userEmail = webHookData["user_email"]            //邮箱currentBuild.description = "Trigger by Gitlab \n branch: ${env.branchName}
//增加构建描述
currentBuild.displayName = "${env.commitId}"                 //将构建ID变为提交ID

将上述代码保存到Jenkins Pipeline中,然后在GitLab项目中提交代码,测试是否可以正常触发。提交代码后,查看Jenkins构建结果。当出现了新的构建,说明配置成功。

2.3.2 下载代码

首先,在Jenkins系统中添加一个凭据,用于存储下载代码库的账户信息

接下来是提交流水线中的核心逻辑—下载代码。打开片段生成器,生成下载功能的代码,在项目分支中提交代码,然后导航到Jenkins项目页面,可以看到正在运行的构建。

pipeline {agent anystages {stage("CheckOut") {steps{script {checkout([$class :'GitSCM',branches:[[name:env.branchName]],extensions:[],userRemoteConfigs:[[credentialsId:'gitlabadmin-user',url:env.srcUrl]]])sh "ls -l" }}}}}

2.4 Pipeline优化

为了避免不必要的构建任务,可以对Jenkins的Generic Webhook Trigger进行优化。例如,可以设置触发构建的条件,如只有当指定分支更新时才触发构建,或者只有在特定标签添加时才构建。这样可以减轻服务器的负担,提高系统的稳定性和可靠性。

如果要过滤新建分支和标签的触发构建,可以在Generic Webhook中添加3个变量,分别是object_kind、before、after,以获取当前的提交信息,如下图。

通过正则表达式配置触发条件,在Expression文本框中填写^push\s(?!0{40}).{40}\s(?!0{40}).{40}$,在Text文本框中填写$object_kind $before $after。该表达式匹配push请求只有在after和before的值都不是40个0时才会触发构建,当值为40个0时,删除分支或者新建分支操作,过滤条件配置如图

相关文章:

DevOps工程技术价值流:GitLab源码管理与提交流水线实践

在当今快速迭代的软件开发环境中,DevOps(开发运维一体化)已经成为提升软件交付效率和质量的关键。而GitLab,作为一个全面的开源DevOps平台,不仅提供了强大的版本控制功能,还集成了持续集成/持续交付(CI/CD)…...

Qt 面试题学习11_2024-11-29

Qt 面试题 1、什么是Qt事件循环 ?2、纯虚函数和普通的虚函数有什么区别3、Qt 的样式表是什么? 1、什么是Qt事件循环 ? Qt事件循环是一种程序架构,它用于处理窗口系统和其他用户界面事件,以及与用户界面无关的事件例如…...

云原生和数据库哪个好一些?

云原生和数据库哪个好一些?云原生和数据库各有其独特的优势,适用于不同的场景。云原生强调高效资源利用、快速开发部署和高可伸缩性,适合需要高度灵活性和快速迭代的应用。而数据库则注重数据一致性、共享和独立性,确保数据的稳定…...

baomidou Mabatis plus引入异常

1 主要异常信息 Error creating bean with name dataSource 但是有个重要提示 dynamic-datasource Please check the setting of primary 解决方法&#xff1a;增加 <dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-sp…...

Oracle篇—通过官网下载最新的数据库软件或者历史数据库软件

&#x1f4ab;《博主介绍》&#xff1a;✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ &#x1f4ab;《擅长领域》&#xff1a;✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux&#xff0c;也在扩展大数据方向的知识面✌️…...

初学git报错处理 | 从IDEA远程拉取、创建分支中“clone failed”“couldn‘t checkout”

1.远程拉取“clone failed” 我新建了一个文件夹&#xff0c;结果clone failed。后来发现&#xff0c;原来是在这个文件夹里没有建立本地仓库。 打开文件夹&#xff0c;右键git bush&#xff0c;然后键入git init,就可以成果clone啦&#xff01; 2.新建分支“couldnt checkou…...

【趣味】斗破苍穹修炼文字游戏HTML,CSS,JS

目录 图片展示 游戏功能 扩展功能 完整代码 实现一个简单的斗破苍穹修炼文字游戏&#xff0c;你可以使用HTML、CSS和JavaScript结合来构建游戏的界面和逻辑。以下是一个简化版的游戏框架示例&#xff0c;其中包含玩家修炼的过程、增加修炼进度和显示经验值的基本功能。 图片…...

Luban数据插件的用法

配置后数据后&#xff0c;点击图1中的gen.bat文件启动生成配置数据和解析配置数据代码的程序&#xff0c;自动生成配置数据和解析用到的代码&#xff1b;因为我已经 指定了生成内容的输出路径为Unity项目的路径下面&#xff0c;所以&#xff0c;不用再搬运生成的内容到项目目录…...

「Mac畅玩鸿蒙与硬件35」UI互动应用篇12 - 简易日历

本篇将带你实现一个简易日历应用&#xff0c;显示当前月份的日期&#xff0c;并支持选择特定日期的功能。用户可以通过点击日期高亮选中&#xff0c;还可以切换上下月份&#xff0c;体验动态界面的交互效果。 关键词 UI互动应用简易日历动态界面状态管理用户交互 一、功能说明…...

BiGRU:双向门控循环单元在序列处理中的深度探索

一、引言 在当今的人工智能领域&#xff0c;序列数据的处理是一个极为重要的任务&#xff0c;涵盖了自然语言处理、语音识别、时间序列分析等多个关键领域。循环神经网络&#xff08;RNN&#xff09;及其衍生结构在处理序列数据方面发挥了重要作用。然而&#xff0c;传统的 RN…...

sscanf与sprintf函数

本期介绍&#x1f356; 主要介绍&#xff1a;sscanf()、sprintf()这对输入/输出函数&#xff0c;并详细讲解了这两个函数的应用场景。 概述&#x1f356; 在C语言的输出和输入库中&#xff0c;有三对及其相似的库函数&#xff1a;printf()、scanf()、fprintf()、fscanf()、spri…...

工业智能网关在该企业中的应用实践

随着工业4.0时代的到来&#xff0c;智能制造已成为企业转型升级的重要方向。工业智能网关作为工业互联网架构中的关键组件&#xff0c;正逐步在各大企业中发挥重要作用。本文将以某制造企业为例&#xff0c;详细探讨天拓四方工业智能网关在该企业中的应用实践&#xff0c;展现其…...

python毕业设计常见的一些开源库!

作为一个Python开发者&#xff0c;在开发过程中经常会使用到各种工具库来简化工作、提高效率。以下是一些常见的Python开发工具库及其介绍和官方链接。 序号库名称功能介绍官方链接或参考网址1numpy提供高效的多维数组操作和数学函数&#xff0c;是许多数据科学和科学计算任务的…...

编程语言中什么是框架?什么是Cocoa?Foundation.framework的底层实现?Swift如何引入ObjC框架?

编程语言中什么是框架&#xff1f; 在编程语言中&#xff0c;框架&#xff08;Framework&#xff09;是一种特定的软件库&#xff0c;它提供了一套预先定义的代码和组件&#xff0c;用于加速和简化特定类型的应用程序的开发。框架通常提供了一套标准化的开发工具集和约定&#…...

C++ 游戏开发入门

一、为什么选择 C 进行游戏开发 C 在游戏开发领域具有独特的地位。它兼具高效性与对底层硬件的良好控制能力&#xff0c;这使得它非常适合开发对性能要求极高的游戏核心引擎部分。许多知名的大型游戏&#xff0c;如《使命召唤》系列、《虚幻竞技场》等&#xff0c;其底层架构都…...

【娱乐项目】基于cnchar库与JavaScript的汉字查询工具

Demo介绍 利用了 cnchar 库来进行汉字相关的信息查询&#xff0c;并展示了汉字的拼音、笔画数、笔画顺序、笔画动画等信息用户输入一个汉字后&#xff0c;点击查询按钮&#xff0c;页面会展示该汉字的拼音、笔画数、笔画顺序&#xff0c;并绘制相应的笔画动画和测试图案 cnchar…...

20241129解决在Ubuntu20.04下编译中科创达的CM6125的Android10出现找不到库文件libncurses.so.5的问题

20241129解决在Ubuntu20.04下编译中科创达的CM6125的Android10出现找不到库文件libncurses.so.5的问题 2024/11/29 21:11 缘起&#xff1a;中科创达的高通CM6125开发板的Android10的编译环境需要。 vendor/qcom/proprietary/commonsys/securemsm/seccamera/service/jni/jni_if.…...

自然语言处理:基于BERT预训练模型的中文命名实体识别(使用PyTorch)

命名实体识别&#xff08;NER&#xff09; 命名实体识别&#xff08;Named Entity Recognition, NER&#xff09;是自然语言处理&#xff08;NLP&#xff09;中的一个关键任务&#xff0c;其目标是从文本中识别出具有特定意义的实体&#xff0c;并将其分类到预定义的类别中。这…...

记录一次 用php 调用ai用stream返回

直接写代码了 config 里面是配置文件就不写了&#xff0c;这样要去不同的平台申请去 写一个 service,解释一下代码 写了两个ai&#xff0c;一个是星火&#xff0c;一个是质谱&#xff0c;他们都是调用curl 方法&#xff0c;并返回数据&#xff0c; s t r e a m 为假就是等等返…...

vue引入并调用electron插件在网页报错Dynamic require of “electron“ is not supported

报错信息 Error: Dynamic require of "electron" is not supported 这个错误信息表明你正在尝试在一个普通的网页环境中动态地引入(electron)&#xff0c;但是这是不被允许的。Electron是一个用于构建桌面应用程序的框架&#xff0c;它结合了Node.js和Chromium&#…...

【C++】数组

1.概述 所谓数组&#xff0c;就是一个集合&#xff0c;该集合里面存放了相同类型的数据元素。 数组特点&#xff1a; &#xff08;1&#xff09;数组中的每个数据元素都是相同的数据类型。 &#xff08;2&#xff09;数组是有连续的内存空间组成的。 2、一维数组 2.1维数组定…...

Python 中的 try-except 语句介绍

Python 中的 try-except 语句介绍 在编程过程中&#xff0c;异常处理是非常重要的一部分。Python 提供了 try-except 语句来捕获和处理程序运行时可能出现的异常。本文将详细介绍 try-except 语句的基本概念、常见错误类型以及一些实用的代码示例。 1. try-except 语句的基本…...

网络原理-初识

1.网络的发展历程 独立模式 独立模式&#xff1a;计算机之间相互独立。 每个终端A、B、C各自持有客户端数据 网络互连 随着时代的发展&#xff0c;越来越需要计算机之间互相通信&#xff0c;共享软件和数据&#xff0c;即可以多个计算机协调工作来完成业务&#xff0c;就有…...

uniapp动态表单

使用了uniapp自带扩展组件和uv-ui组件库自行安装下载 <template><view class"assetEdit_container"><view class"type-box"><uv-formlabelPosition"left"labelWidth"140rpx":model"formData"ref"…...

基于智能语音交互的智能呼叫中心工作机制

在智能化和信息化不断进步的现代&#xff0c;智能呼叫中心为客户提供高质量、高效率的服务体验&#xff0c;提升众多品牌用户的满意度和忠诚度。作为实现智能呼叫中心的关键技术之一的智能语音交互技术&#xff0c;它通过集成自然语言处理&#xff08;NLP&#xff09;、语音识别…...

flask的第一个应用

本文编写一个简单的实例来记录下flask的使用 文章目录 简单实例flask中的路由无参形式有参形式 参数类型不同的http方法本文小结 简单实例 flask的依赖包都安装好之后&#xff0c;我们就可以写一个最简单的web应用程序了&#xff0c;我们把这个应用程序命名为first.py: from fl…...

macOS开发环境配置与应用开发

macOS开发环境配置与应用开发 在数字化时代&#xff0c;软件开发已成为推动各行各业创新的重要引擎。macOS&#xff0c;作为苹果公司推出的操作系统&#xff0c;以其强大的性能、优雅的用户界面和丰富的开发工具&#xff0c;吸引了无数开发者的目光。本文将深入探讨macOS开发环…...

【SpringBoot】整合篇

1、log4j2 第一步&#xff0c;导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions><!-- 去掉springboot默认配置 --> <exclusion> <…...

Vue实战技巧:如何展示附件(PDF、MP4、Excel、Zip等)并修改名称下载

大家好&#xff0c;今天给大家分享一篇关于在Vue项目中展示附件&#xff08;PDF、MP4、Excel、Zip等&#xff09;并修改名称下载的教程。在实际开发过程中&#xff0c;这个功能非常实用&#xff0c;下面我们就一起来学习一下。 一、准备工作 首先&#xff0c;确保你的项目中已经…...

多线程运行时,JVM(Java虚拟机)的内存模型

在多线程运行时&#xff0c;JVM&#xff08;Java虚拟机&#xff09;的内存模型主要涉及以下几个方面&#xff1a; 1. 主内存和工作内存 JVM内存模型定义了主内存和工作内存的概念。主内存是所有线程共享的内存区域&#xff0c;而工作内存是每个线程私有的内存区域。线程对变量…...

VS与SQL Sever(C语言操作数据库)

作者这里使用的是程序是&#xff1a; Visual Studio SQL Sever (1 对VS的操作 1.首先我们打开Visual Studio Installer&#xff0c;并以管理员身份运行 2.点击修改 3.先选择数据存储和处理&#xff0c;再在右方添加处理工具&#…...

一次奇妙的getshell之旅

1. 资产收集时发现一个网站&#xff1a; https://xxxxxxxxxx/ischool/publish_page/0/ 发现存在管理员登陆: 这里之前在该旁站找到一个SQL注入&#xff0c;然后找到的这个账户密码&#xff08;这里如何从SQL注入找到账户密码前借鉴前面的报告。&#xff09;&#xff1a; 账号&…...

C# 集合(Collection)

文章目录 前言一、动态数组&#xff08;ArrayList&#xff09;二、哈希表&#xff08;Hashtable&#xff09;三、排序列表&#xff08;SortedList&#xff09;四、堆栈&#xff08;Stack&#xff09;五、队列&#xff08;Queue&#xff09;六、点阵列&#xff08;BitArray&…...

深度学习模型:门控循环单元(GRU)详解

本文深入探讨了门控循环单元&#xff08;GRU&#xff09;&#xff0c;它是一种简化版的长短期记忆网络&#xff08;LSTM&#xff09;&#xff0c;在处理序列数据方面表现出色。文章详细介绍了 GRU 的基本原理、与 LSTM 的对比、在不同领域的应用以及相关的代码实现&#xff0c;…...

深入浅出:开发者如何快速上手Web3生态系统

Web3作为互联网的未来发展方向&#xff0c;正在逐步改变传统互联网架构&#xff0c;推动去中心化技术的发展。对于开发者而言&#xff0c;Web3代表着一个充满机遇与挑战的新领域&#xff0c;学习和掌握Web3的基本技术和工具&#xff0c;将为未来的项目开发提供强大的支持。那么…...

HCIA笔记6--路由基础与静态路由:浮动路由、缺省路由、迭代查找

文章目录 0. 概念1.路由器工作原理2. 跨网访问流程3. 静态路由配置4. 静态路由的应用场景4.1 路由备份4.2 浮动路由4.3 缺省路由 5. 迭代路由6 问题6.1 为什么路由表中有的下一跳的地址有接口&#xff1f;6.2 个人电脑的网关本质是什么&#xff1f; 0. 概念 自治系统&#xff…...

【北京迅为】iTOP-4412全能版使用手册-第三十二章 网络通信-TCP套字节

iTOP-4412全能版采用四核Cortex-A9&#xff0c;主频为1.4GHz-1.6GHz&#xff0c;配备S5M8767 电源管理&#xff0c;集成USB HUB,选用高品质板对板连接器稳定可靠&#xff0c;大厂生产&#xff0c;做工精良。接口一应俱全&#xff0c;开发更简单,搭载全网通4G、支持WIFI、蓝牙、…...

图片预处理技术介绍4——降噪

图片预处理 大家好&#xff0c;我是阿赵。   这一篇将两种基础的降噪算法。   之前介绍过均值模糊和高斯模糊。如果从降噪的角度来说&#xff0c;模糊算法也算是降噪的一类&#xff0c;所以之前介绍的两种模糊可以称呼为均值降噪和高斯降噪。不过模糊算法对原来的图像特征的…...

Java基础面试题12:Java中的两种异常类型是什么?它们有什么区别?

在 Java 中&#xff0c;异常是非常重要的一部分。理解异常的种类和它们的区别&#xff0c;是每个 Java 开发者都需要掌握的基础技能。 Java 中的异常分类 Java 中异常的根本来源是 Throwable 类&#xff0c;它包含了两大类&#xff1a;错误&#xff08;Error&#xff09;和异常…...

MySQL5.6升级MySQL5.7

升级方式介绍 08 数据库服务版本升级方法 5.6 – 5.7 – 8.0 数据库版本升级方法&#xff1a; Inplace-本地升级 步骤一&#xff1a;在同一台服务器中&#xff0c;需要部署高版本数据库服务实例步骤二&#xff1a;低版本数据库中的数据进行备份迁移&#xff0c;迁移到高版本…...

Pytorch实现心跳信号分类识别(支持LSTM,GRU,TCN模型)

Pytorch实现心跳信号分类识别(支持LSTM,GRU,TCN模型&#xff09; 目录 Pytorch实现心跳信号分类识别(支持LSTM,GRU,TCN模型&#xff09; 1. 项目说明 2. 数据说明 &#xff08;1&#xff09;心跳信号分类预测数据集 3. 模型训练 &#xff08;1&#xff09;项目安装 &…...

走进科学json版:在 JSON 格式中,字符串值必须使用双引号 “ 来界定,而不能使用单引号 ‘

走进科学疑难问题出现 在调试fastapi程序的时候&#xff0c;报错碰到422错误 INFO: 192.168.0.99:46536 - "POST /v1/chat/completions/ HTTP/1.1" 422 Unprocessable Entity 干净利索&#xff0c;只有这一句报错&#xff0c;不管代码里加入多少print语句查看…...

【C#】书籍信息的添加、修改、查询、删除

文章目录 一、简介二、程序功能2.1 Book类属性&#xff1a;方法&#xff1a; 2.2 Program 类 三、方法&#xff1a;四、用户界面流程&#xff1a;五、程序代码六、运行效果 一、简介 简单的C#控制台应用程序&#xff0c;用于管理书籍信息。这个程序将允许用户添加、编辑、查看…...

博泽Brose EDI项目案例

Brose 是一家德国的全球性汽车零部件供应商&#xff0c;主要为全球汽车制造商提供机电一体化系统和组件&#xff0c;涵盖车门、座椅调节系统、空调系统以及电动驱动装置等。Brose 以其高质量的创新产品闻名&#xff0c;在全球拥有多个研发和生产基地&#xff0c;是全球第五大家…...

Macos用brew安装Nodejs亲手教程

首先确保brew已安装&#xff0c;搜索node资源&#xff0c;命令如下&#xff1a; brew search nodejs 演示结果如下&#xff1a; 安装nodejs brew install node22 或 brew install node 出现如下界面 表示正在安装&#xff0c;安装成功后&#xff0c;提示如下信息&#xff1…...

开发一套ERP 第十弹 图片作为配置文件,本地读取图片,定时更新图片类型

echo Hello World在同一数据库中在建一个图床数据表,产品一,一对应,图片命名 最优的方案&#xff0c;使用 rust 在构建一个 http server 用于管理非数据库资源,也可以将来对接不同的图床&#xff0c;部署方便 考虑到数据库资源和图片资源,都可以被远程访问这种方法最佳...

终端环境下关闭显示器

终端环境下关闭显示器 使用vbetool vbetool 使用 lrmi 来运行视频 BIOS 中的代码。目前&#xff0c;它能够更改 DPMS 状态、保存/恢复视频卡状态并尝试从头开始初始化视频卡。 vbetool dpms off...

基于PySpark 使用线性回归、随机森林以及模型融合实现天气预测

基于PySpark 实现天气预测与模型集成 在大数据分析与机器学习领域&#xff0c;Spark 提供了强大的计算能力和灵活的扩展性。本文将介绍如何利用 PySpark 完成以下任务&#xff1a; 1、数据预处理&#xff1a;清洗和编码天气数据。 2、特征工程&#xff1a;合并数值和分类特征…...

Android Studio 右侧工具栏 Gradle 不显示 Task 列表

问题&#xff1a; android studio 4.2.1版本更新以后AS右侧工具栏Gradle Task列表不显示&#xff0c;这里需要手动去设置 解决办法&#xff1a; android studio 2024.2.1 Patch 2版本以前的版本设置&#xff1a;依次打开 File -> Settings -> Experimental 选项&#x…...

Linux详解:文件权限

文章目录 前言Linux文件权限基础文件成员与三组权限字符 权限的修改修改文件所有者总结 前言 在浩瀚的操作系统世界中&#xff0c;Linux以其开源、灵活和强大的特性&#xff0c;成为了服务器、开发环境以及众多个人用户的首选。而在Linux的众多特性中&#xff0c;文件权限机制…...

尹锡悦被捕,李在明笑不出来

在韩国总统官邸门外的空地上,坐着黑压压的人群。一月的首尔,平均气温只有摄氏1度,人们的衣物上已经结起了霜,行李袋上也铺上了一层雪。他们的脸部通红,不知道是寒冷还是激动的缘故。这些高喊口号的人群,相当一部分是尹锡悦的支持者。他们堵住了总统官邸外面的道路,为的是…...

准备好的二号工人:中国游戏平台劳工的性别化劳动制度

导读性别、平台、游戏和劳动,这四个当代社会科学研究的热门领域在作者的深刻分析中交汇,形成了一个引人深思的视角,生动地呈现了当代中国社会的发展状况。这种交织不仅揭示了社会结构的复杂性,也让我们意识到,在数字经济高速发展的今天,性别问题和劳动问题并没有因技术的…...

特朗普考虑上任后签署行政令暂停TikTok禁令

当地时间1月15日,美国当选总统特朗普正在考虑在上任后发布一项行政命令,暂停执行TikTok销售或禁止法60至90天。据两名知情人士称,特朗普或签署行政命令,该命令将解除拜登政府19日在全国范围内禁止该应用程序的禁令。特朗普表示,在这个平台上他受到广泛拥趸,拥有超过1400万…...

陈奕迅赵本山演出取消内幕:饭圈被盯上,电诈的作案流程曝光

近日,网上热传一条名为&ldquo;电诈团伙在逐渐渗透饭圈&rdquo;的帖子,发帖人称,电诈集团已混入粉丝团,目标是赴泰的陈奕迅粉丝。比如,有人在陈奕迅退票话题下回复说&ldquo;自己在泰国过年,会泰语,能够在泰国陪玩,提供省钱攻略和注意事项&rdquo;。此外,…...

雷霆出击,拯救百姓,铲除罪恶集团

中国出手打击了缅北电诈罪恶集团以后,缅甸妙瓦底又暴出了一个骇人听闻震惊全国的,以中国湖南籍佘智江为头子残害中国人的恐怖组织性质的罪恶集团。他们利用高薪为诱饵,采取欺骗,诈骗等各种手段,把中国人骗到泰国等东南亚国家,然后转运或绑架到缅甸一个叫妙瓦底所谓园区。…...

“罢免韩国瑜”最新民调出炉,蓝营:赖清德看到要冒一身冷汗

针对该份民调,罗智强表示,这份民调整体来说,民进党几乎在每个议题都输,连民进党支持者都不支持民进党的主张。由蓝营民代罗智强成立的新立法机构智库今天发布最新民调,内容涵盖民进党团总召柯建铭喊出的罢免台立法机构负责人韩国瑜、罢免国民党区域民代、解散国民党,&…...