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

Jenkins 创建 Node 到 Windows

Jenkins 创建 Node 到 Windows

一. 新建 Node

Dashboard -> Manage Jenkins -> Manage Nodes and Clouds
在这里插入图片描述
Dashboard -> Nodes -> New Node
在这里插入图片描述
在这里插入图片描述

二. 配置节点

在这里插入图片描述
在这里插入图片描述
Node:节点名
Description:节点描述
Number of executors:节点最大同时执行任务数量
Remote root directory:节点 代理机器上保存 Jenkins 启动文件的目录,最好使用绝对路径
Labels:节点标签,可以是多个,中间以空格分隔
Usage:控制何时构建时使用这个 Node,这里选择的 Only build jobs with label expressions matching this node:构建时只有当 任务Label 选择为此节点中包含的 Label 时,才会执行这个节点
Launch method :启动方法,这里选择了 Launch agents via SSH 通过 SSH 启动
Host:真正运行Node 的电脑的 ip
Credentials:凭证,上面选择了 Launch agents via SSH,这里需要选择一个 SSH 的凭证
Jenkins 配置 Credentials 凭证
Host Key Verfication Strategy:控制Jenkins在连接时如何验证远程主机提供的SSH密钥
Availability:控制Jenkins何时启动和停止此代理,此处选择了 Keep this agent online as much as possible:尽可能让这个代理保持在线状态
Tool Locations:用到的工具在 Windows 电脑上的路径
上面配置了 git,如果不配置,默认使用的是 启动 Jenkins电脑系统上配置的 git,会报错

最后点击 Save 保存

三. 创建如下

在这里插入图片描述
此时 节点 WinTest 图标上标记一个 红色 X,说明这个节点还未启动
点击 WinTest 节点名,打开节点
Status:节点状态,此时节点未启动
Deleta Agent:删除节点
Configure:节点配置,点击打开 回到 二. 配置节点

四.配置 SSH 服务

回到第二步看 Host 填写的 ip 这个是真正运行 Node 的 Windows 电脑的 ip
Jenkins 是在 Mac 电脑上运行,Node 配置中Launch method :启动方法,选择了 Launch agents via SSH

到 Windows 电脑 Windows 配置 SSH 服务
Mac 电脑上的 公钥 配置到 Windows 电脑中,具体位置在 Windows 配置 SSH 服务 找

测试 Mac 通过 SSH 连接 Windows 电脑,如果能成功连接,到 第五步. 启动节点
注意:Jenkins 中 创建的 SSH 凭证中填写的 UserName 需要配置为 Windows电脑的登录用户名,否则验证失败

五. 启动节点

在这里插入图片描述
到 Status 页签,点击 Launch agent

下面几种报错原因以及解决方案
1.

Connection refused (Connection refused)
SSH Connection failed with IOException: "Connection refused (Connection refused)", retrying in 15 seconds. There are 7 more retries left.
Connection refused (Connection refused)

原因:代理机器系统是 Win10,代理机器上还没有启动 SSH 服务
Windows 启动 SSH 服务
再次执行 Launch Agent

Warning: no key algorithms provided; JENKINS-42959 disabled
SSHLauncher{host='10.0.40.182', port=22, credentialsId='liqiangWin', jvmOptions='', javaPath='', prefixStartSlaveCmd='', suffixStartSlaveCmd='', launchTimeoutSeconds=60, maxNumRetries=10, retryWaitTime=15, sshHostKeyVerificationStrategy=hudson.plugins.sshslaves.verifiers.KnownHostsFileKeyVerificationStrategy, tcpNoDelay=true, trackCredentials=true}
[02/18/25 21:20:44] [SSH] Opening SSH connection to 10.0.40.182:22.
Searching for 10.0.40.182 in /Users/townest/.ssh/known_hosts
Searching for 10.0.40.182:22 in /Users/townest/.ssh/known_hosts
[02/18/25 21:20:44] [SSH] WARNING: No entry currently exists in the Known Hosts file for this host. Connections will be denied until this new host and its associated key is added to the Known Hosts file.
Key exchange was not finished, connection is closed.
SSH Connection failed with IOException: "Key exchange was not finished, connection is closed.", retrying in 15 seconds. There are 10 more retries left.
Searching for 10.0.40.182 in /Users/townest/.ssh/known_hosts
Searching for 10.0.40.182:22 in /Users/townest/.ssh/known_hosts
[02/18/25 21:20:59] [SSH] WARNING: No entry currently exists in the Known Hosts file for this host. Connections will be denied until this new host and its associated key is added to the Known Hosts file.
Key exchange was not finished, connection is closed.

报错提示连接的 SSH 主机的身份没有经过验证,可能存在中间人攻击的风险。
为了确保安全,SSH 客户端需要验证连接的服务器的身份,以防止被伪装或受到中间人攻击

回到 第二步 Host Key Verfication Strategy:Known hosts file Verification Strategy
主机密钥验证策略 配置的为 从 Known 文件验证
可以到 Mac 电脑上到 ~/.ssh 路径,可以看到一个 known_hosts 文件,这里边存放了需要访问的电脑的 ip
打开会看到 每行以一个 ip 地址开头,后跟 ssh 公钥
比如上面 启动 SSH 服务的 Windows 电脑 ip 为 10.0.40.182
解决方案有多种,这里只处理一种

# ssh-keyscan -H hostname >> ~/.ssh/known_hosts
# hostname 就是启动 SSH 服务电脑的 IP
ssh-keyscan -H 10.0.40.182 >> ~/.ssh/known_hosts

这个命令会获取主机10.0.40.182的公钥并将其追加到 ~/.ssh/known_hosts 文件中

SSHLauncher{host='10.0.40.182', port=22, credentialsId='liqiangWin', jvmOptions='', javaPath='', prefixStartSlaveCmd='', suffixStartSlaveCmd='', launchTimeoutSeconds=60, maxNumRetries=10, retryWaitTime=15, sshHostKeyVerificationStrategy=hudson.plugins.sshslaves.verifiers.NonVerifyingKeyVerificationStrategy, tcpNoDelay=true, trackCredentials=true}
[02/19/25 11:27:27] [SSH] Opening SSH connection to 10.0.40.182:22.
[02/19/25 11:27:27] [SSH] WARNING: SSH Host Keys are not being verified. Man-in-the-middle attacks may be possible against this connection.
ERROR: Server rejected the 1 private key(s) for xxxxx (credentialId:Win/method:publickey)
[02/19/25 11:27:27] [SSH] 认证失败。
认证失败。
[02/19/25 11:27:27] Launch failed - cleaning up connection
[02/19/25 11:27:27] [SSH] 连接关闭。

SSH 服务器上配置了 Mac 电脑的公钥,不了解的看这里 Windows 配置 SSH 服务
上面这个报错是 SSH服务器 通过 Mac 的公钥验证 Mac 电脑的私钥 失败

ERROR: Server rejected the 1 private key(s) for xxxxx (credentialId:Win/method:publickey)

看上面报错日志中的 for xxxxx 这个 xxxxx 是导致验证失败的原因
这是因为 我在Jenkins 中配置 SSH密钥凭证的时候 UserName 没有写成 开启 SSH 服务的 Windows 电脑的登录账号名
回到 SSH 密钥凭证,修改密钥凭证的 UserName为 SSH 服务的 Windows 电脑的登录账号名

[SSH] Starting agent process: cd "F:\Jenkins" && E:\JDK12/bin/java  -jar remoting.jar -workDir D:\jenkins_ws -jar-cache D:\jenkins_ws/remoting/jarCache
Error: Unable to access jarfile remoting.jar
Agent JVM has terminated. Exit code=1

上面报错原因是 通过 JDK 启动 jenkins 的时候没有对 remoting.jar 的权限
(1) remoting.jar 文件的作用:我们这里是 Mac 电脑上配置的 Jenkins 添加一个 Node 到 Windows 电脑上,那么Windows 电脑需要从 Mac 电脑的 Jenkins 中下载一个 remoting.jar 有的是 agent.jar 到 Windows 电脑上,然后通过 JDK命令执行这个 remoting.jar 或者 agent.jar,启动Jenkins 在 Windows 电脑上运行

(2) 对于命令中的几个路径从哪里来的做个解释

cd "F:\Jenkins" && E:\JDK12/bin/java  -jar remoting.jar -workDir D:\jenkins_ws -jar-cache D:\jenkins_ws/remoting/jarCache

先到 Node 配置界面
Remote root directory 配置为 F:\Jenkins
Remoting Work directory 配置为 D:\jenkins_ws
在这里插入图片描述
这个命令是一个组合命令
先执行 cd "F:\Jenkins" 切换路径
在执行 E:\JDK12/bin/java -jar remoting.jar -workDir D:\jenkins_ws -jar-cache D:\jenkins_ws/remoting/jarCache
Jenkins 执行 通过 SSH 连接到 SSH 服务的时候其实是在路径 C:\Users\Administrator>
remoting.jar 文件是被 Jenkins 放到路径 F:\Jenkins,所以要先 cd 到这个路径

Error: Unable to access jarfile remoting.jar 纯属是个人 Windows 系统 cmd 环境不同导致的报错
经过测试发现有的电脑 cmd 不管当前在哪个盘符
执行 cd "F:\Jenkins" && E:\JDK12/bin/java -jar remoting.jar -workDir D:\jenkins_ws -jar-cache D:\jenkins_ws/remoting/jarCache 就是成功的

我的电脑上 如果 cmd 当前盘符不是 F盘 那么就会报这个错
修改命令在 cd 后边加上 /d

cd /d "F:\Jenkins" && E:\JDK12/bin/java  -jar remoting.jar -workDir D:\jenkins_ws -jar-cache D:\jenkins_ws/remoting/jarCache

执行发现可以执行成功
解释:在命令行中使用 /d 参数的作用是允许跨磁盘驱动器切换目录
如果不加 /d 参数,cd 命令通常只能在同一磁盘驱动器内切换目录
例如
如果当前目录在 C 盘,使用 cd 命令切换到 C 盘的其他目录是可以正常工作的
但如果要切换到 D 盘的某个目录则会失败
而加上 /d 参数后,就可以跨磁盘驱动器切换目录,例如从 C 盘切换到 D 盘的某个目录‌

因为这个命令行是 Jenkins 拼接的,我没找到在哪里配置的,所以我没法加 /d
我的修改方案是,Remote root directory:C:\Jenkins
直接修改到 C盘

再次重新 Launch agent

[SSH] Starting agent process: cd "C:\Jenkins" && E:\JDK12/bin/java  -jar remoting.jar -workDir D:\jenkins_ws -jar-cache D:\jenkins_ws/remoting/jarCache
org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
: Using D:\jenkins_ws\remoting as a remoting work directory
rg.jenkinsci.remoting.engine.WorkDirManager setupLogging
Both error and output logs will be printed to D:\jenkins_ws\remoting
<===[JENKINS REMOTING CAPACITY]===>channel started
Remoting version: 4.10

上面日志显示节点启动成功

[02/21/25 14:14:07] [SSH] Starting agent process: cd "C:\Jenkins_2" && java  -jar remoting.jar -workDir C:\Jenkins_2 -jar-cache C:\Jenkins_2/remoting/jarCache
2�� 21, 2025 2:14:07 ���� org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
��Ϣ: Using C:\Jenkins_2\remoting as a remoting work directory
2�� 21, 2025 2:14:07 ���� org.jenkinsci.remoting.engine.WorkDirManager setupLogging
��Ϣ: Both error and output logs will be printed to C:\Jenkins_2\remoting
<===[JENKINS REMOTING CAPACITY]===>channel started
2�� 21, 2025 2:14:07 ���� hudson.remoting.UserRequest perform
����: LinkageError while performing UserRequest:hudson.slaves.SlaveComputer$SlaveVersion@455044b3
java.lang.UnsupportedClassVersionError: Failed to load hudson.slaves.SlaveComputer$SlaveVersionat hudson.remoting.RemoteClassLoader.loadClassFile(RemoteClassLoader.java:472)at hudson.remoting.RemoteClassLoader.loadRemoteClass(RemoteClassLoader.java:301)at hudson.remoting.RemoteClassLoader.loadWithMultiClassLoader(RemoteClassLoader.java:277)at hudson.remoting.RemoteClassLoader.findClass(RemoteClassLoader.java:236)at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)at java.base/java.lang.Class.forName0(Native Method)at java.base/java.lang.Class.forName(Class.java:398)at hudson.remoting.MultiClassLoaderSerializer$Input.resolveClass(MultiClassLoaderSerializer.java:133)at java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1886)at java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1772)at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2060)at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1594)at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)at hudson.remoting.UserRequest.deserialize(UserRequest.java:312)at hudson.remoting.UserRequest.perform(UserRequest.java:196)at hudson.remoting.UserRequest.perform(UserRequest.java:50)at hudson.remoting.Request$2.run(Request.java:391)at hudson.remoting.InterceptingExecutorService.lambda$wrap$0(InterceptingExecutorService.java:81)at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.UnsupportedClassVersionError: hudson/slaves/SlaveComputer$SlaveVersion has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0at java.base/java.lang.ClassLoader.defineClass1(Native Method)at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:877)at hudson.remoting.RemoteClassLoader.loadClassFile(RemoteClassLoader.java:470)... 22 moreAgent JVM has not reported exit code. Is it still running?
[02/21/25 14:14:10] Launch failed - cleaning up connection
[02/21/25 14:14:10] [SSH] Connection closed.
ERROR: Connection terminated

上面日志 cd "C:\Jenkins_2" && java -jar remoting.jar -workDir C:\Jenkins_2 -jar-cache C:\Jenkins_2/remoting/jarCache 执行已经成功了,下面还有报错
找到日志中

Caused by: java.lang.UnsupportedClassVersionError: hudson/slaves/SlaveComputer$SlaveVersion has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0

这表明当前使用的 Java 运行时只能处理到 class 文件版本 55.0,而 Jenkins 代码则是用 class 文件版本 61.0 编译的
根据 Java 的版本对应关系:
Class file version 61.0 对应 Java 17
Class file version 55.0 对应 Java 11
因此,这个错误的解决方案是确保 Jenkins 节点 也就是 Windows 使用 Java 17 或更高版本来运行,安装 JDK17

相关文章:

Jenkins 创建 Node 到 Windows

Jenkins 创建 Node 到 Windows 一. 新建 Node Dashboard -> Manage Jenkins -> Manage Nodes and Clouds Dashboard -> Nodes -> New Node 二. 配置节点 Node&#xff1a;节点名 Description&#xff1a;节点描述 Number of executors&#xff1a;节点最大同…...

鸿蒙状态管理概述

状态管理 状态管理之v1LocalStorageLocalStorageLink的框架行为LocalStorageProp的框架行为LocalStorage使用场景 AppStorageStorageLink的框架行为StorageProp的框架行为AppStorage的使用场景 PersistentStorageEnvironmentEnvironment内置参数 WatchWatch的使用场景 $$语法$$…...

英文字体:极简现代浓缩未来派科技海报标题排版无衬线字体 PODIUM Sharp Font

PODIUM Sharp 是 2012 年设计的 DUDU 字体的扩展版本。多年后&#xff0c;我决定通过添加新的母版和粗细来重建和开发这种字体。最后&#xff0c;PODIUM Sharp 由 234 种款式组成&#xff1a;从超压缩发际线到超扩展重度。 这个项目的主要目的是在我在旧波兰标本中发现的不同模…...

Linux系统配置阿里云yum源,安装docker

配置阿里云yum源 需要保证能够访问阿里云网站 可以先ping一下看看&#xff08;阿里云可能禁ping&#xff0c;只要能够解析为正常的ip地址即可&#xff09; ping mirrors.aliyun.com脚本 #!/bin/bash mkdir /etc/yum.repos.d/bak mv /etc/yum.repos.d/*.repo /etc/yum.repos…...

基础排序算法

冒泡排序 冒泡排序&#xff08;Bubble Sort&#xff09;一种交换排序&#xff0c;它的基本思想是&#xff1a;两两比较相邻记录的关键字&#xff0c;如果反序则交换&#xff0c;直到没有反序的记录为止。 以下代码是改进的冒泡算法&#xff0c;在排序好了之后可以直接跳出循环…...

蓝桥杯备赛1-2合法日期

题目描述 小蓝正在上小学&#xff0c;老师要求同学们在暑假每天记日记。可是小蓝整个暑假都在玩&#xff0c;直到最后一天才想起要记日记。于是小蓝赶紧编了一些日记交给老师。 没想到&#xff0c;日记很快就被老师发现了问题&#xff0c;原来小蓝记完 8 月 31 日的日记&…...

巧用GitHub的CICD功能免费打包部署前端项目

近年来&#xff0c;随着前端技术的发展&#xff0c;前端项目的构建和打包过程变得越来越复杂&#xff0c;占用的资源也越来越多。我有一台云服务器&#xff0c;原本打算使用Docker进行部署&#xff0c;以简化操作流程。然而&#xff0c;只要执行sudo docker-compose -f deploy/…...

后端开发-分页游标设计(解决大数据量分页查询时的性能问题)

文章目录 适用场景/背景描述本质原理简单举例子分页游标&#xff0c;若用非唯一索引的字段排序分页游标&#xff0c;若 order by 的不是索引还能使用分页游标吗 适用场景/背景描述 如果需要做分页查询且被查询的数据量很大&#xff0c;直接 limit offset 有可能会导致全表扫描…...

SpringBoot 框架关于如何创建并使用 Redis 的详细介绍

本文是博主整理项目时整理出来的&#xff0c;项目使用 SpringBoot 框架&#xff0c;使用 Redis 作为缓存组件&#xff0c;用于缓存部分热点接口数据。 文章目录 一、Redis 的前置配置1、引入依赖2、单机配置3、集群配置4、两种配置路径解读 二、创建 Redis 配置类1、简易版 Red…...

跨语言语义理解与生成:多语言预训练方法及一致性优化策略

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…...

旧手机热点无法提供ipv6解决方法(emui 8 热点提供ipv6)

旧手机热点无法提供ipv6解决方法 手机&#xff1a;荣耀8x 系统版本: EMUI 8 网络&#xff1a;移动流量卡 解决方案 设置-》无线和网络-》移动网络-》接入点名称(APN)-》cmiot 修改 APN协议: IPv4/IPv6 修改 APN漫游协议: IPv4/IPv6...

第2章 信息技术发展(一)

2.1 信息技术及其发展 2.1.1 计算机软硬件 计算机硬件(Computer Hardware)是指计算机系统中由电子、机械和光电元件等组成的各种物理装置的总称。 计算机软件 (Computer Software)是指计算机系统中的程序及其文档&#xff0c;程序是计算任务的处理对象和处理规则的描述; 文档…...

循环神经网络RNN原理与优化

目录 前言 RNN背景 RNN原理 上半部分&#xff1a;RNN结构及按时间线展开图 下半部分&#xff1a;RNN在不同时刻的网络连接和计算过程 LSTM RNN存在的问题 LSTM的结构与原理 数学表达层面 与RNN对比优势 应用场景拓展 从简易但严谨的代码来看RNN和LSTM RNN LSTM 前言 绕循环神经…...

Redis常见数据结构及其在项目中用法

Redis 可以使用 String 数据类型和 INCR 命令来统计访问量。 以下是在 Redis 控制台中统计访问量的示例&#xff1a; 设置计数器&#xff1a; SET page_views 0这将创建一个名为 page_views 的键&#xff0c;并将其初始值设置为 0。如果该键已经存在&#xff0c;则会覆盖其值。…...

DeepSeek 基础使用文档介绍

目录 1. 简介 2. 安装与验证 安装 验证安装 3. 基础用法 3.1 数据搜索 3.2 数据预处理 3.3 机器学习优化 4. 进阶用法 4.1 并行计算 4.2 高级搜索功能 4.3 自定义数据处理管道 4.4 提问功能 5. 文档和代码分析 5.1 文档解析 5.2 代码分析 6. 实际案例 案例描…...

微信小程序(uni)+蓝牙连接+Xprint打印机实现打印功能

1.蓝牙列表实现&#xff0c;蓝牙设备展示&#xff0c;蓝牙连接 <template><view class"container"><view class"container_top"><view class"l">设备名称</view><view class"r">{{state.phoneNam…...

数仓搭建(hive):DWB层(基础数据层)

维度退化: 通过减少表的数量和提高数据的冗余来优化查询性能。 在维度退化中&#xff0c;相关的维度数据被合并到一个宽表中&#xff0c;减少了查询时需要进行的表连接操作。例如&#xff0c;在销售数据仓库中&#xff0c;客户信息、产品信息和时间信息等维度可能会被合并到一…...

Mybatis的#{}和${}

#{}:预编译语句,用?对参数位置进行一个占位的操作,在数据库生成一个模版,等待后续填充.也可以推测出#在生成模版后的性能是比$快的. ${}:即时语句,提前的吧参数填充进去,在MySQL里就是一个完整的SQL语句. 填充逻辑不同 #{}会给String类型的参数自动的加上双引号,而${}则是直…...

@Transactional 嵌套,内层抛异常,外层用 try-catch 捕获但实际事务却回滚了

1. 内层事务传播行为为 Propagation.REQUIRED 且设置了回滚标记 虽然外层捕获了异常&#xff0c;但内层事务在抛出异常时可能已经标记了整个事务需要回滚。在 Spring 中&#xff0c;当内层事务传播行为为 Propagation.REQUIRED 时&#xff0c;它和外层事务属于同一个逻辑事务。…...

在实时大数据处理中如何平衡延迟和吞吐量

在实时大数据处理中&#xff0c;平衡延迟和吞吐量是一个至关重要的挑战。以下是一些实用的策略和技巧&#xff0c;有助于在这两者之间找到最佳平衡点&#xff1a; 一、技术层面的平衡策略 并行处理&#xff1a; 通过同时处理多个任务来提高吞吐量。在实时大数据处理环境中&am…...

vue学习六

十三 路由 安装 Vue Router | Vue.js 的官方路由 vue3安装vue-router 4版本;vue2安装vue-router 3版本。 测试使用vue3&#xff0c;命令不带版本号默认安装4。 npm install vue-router4 使用 定义 定义文件&#xff1a;src\router\index.ts import {createRouter,crea…...

【Content-Type详解、Postman中binary格式、json格式数据转原始二进制流等】

Content-Type详解、Postman中binary格式、json格式数据转原始二进制流等 背景&#xff1a;postman中如何使用binary格式上传文件 Content-TypeContent-Type的格式由三部分组成&#xff1a;以下是一些常见的Content-Type示例&#xff1a; Postman中 binary格式定义&#xff1a;用…...

K8S下redis哨兵集群使用secret隐藏configmap内明文密码方案详解

#作者&#xff1a;朱雷 文章目录 一、背景环境及方案说明1.1、环境说明1.2、方案一&#xff1a;使用配置文件设置密码1.3、方案二&#xff1a;使用args 的命令行传参设置密码 二、redis secret configmap deployment参考2.1 创建secret-redis.yaml参考2.2 修改configmap配置参…...

插槽slot

在 Vue 中&#xff0c;插槽&#xff08;slot&#xff09;主要用于实现父组件向子组件传递内容&#xff0c;是一种典型的父传子的方式 元素是一个插槽出口 (slot outlet)&#xff0c;标示了父元素提供的插槽内容 (slot content) 将在哪里被渲染。 默认插槽 在外部没有提供任何…...

BFS 解决 FloodFill 算法(典型算法思想)—— OJ例题算法解析思路

目录 一、733. 图像渲染 - 力扣&#xff08;LeetCode&#xff09; 算法代码&#xff1a; 算法思路 基础参数 函数入口 检查条件 初始化 BFS BFS 填充过程 返回结果 复杂度分析 总结 二、200. 岛屿数量 - 力扣&#xff08;LeetCode&#xff09; 算法代码&#xff1a;…...

8 SpringBootWeb案例(上): 查询【分页功能(分页插件)】、删除、新增、修改

文章目录 前言:SpringBootWeb案例1. 准备工作1.1 需求&环境搭建1.1.1 需求说明1.1.2 环境搭建1.2 开发规范1.2.1 开发规范-REST(不强求非要这种风格,传统风格有时候更方便)1.2.2 开发规范-统一响应结果和异常处理1.2.3 开发流程2. 部门管理2.1 查询部门2.1.1 原型和需求…...

Docker 部署 Dify:轻松集成 Ollama 和 DeepSeek

1 Ollama的安装及使用 1.1 什么是Ollama&#xff1f; Ollama 是一个用于本地部署和运行大型语言模型的框架。 Ollama 的作用包括&#xff1a; 本地模型运行&#xff1a;Ollama 允许在本地机器上运行大型语言模型&#xff08;如 LLaMA、DeepSeek 等&#xff09;&#xff0c;无…...

深入解析MySQL索引:本质、分类、选择及使用原则

一、索引的本质 索引&#xff0c;作为数据库中的一种核心数据结构&#xff0c;其本质在于通过改变数据结构来加快查询效率。可以将索引理解为数据库中的一种“目录”或“路标”&#xff0c;它帮助数据库系统快速定位到需要查询的数据行&#xff0c;从而大大提高数据检索的速度…...

MYSQL的第一次

目录 前情提要 题目解析 连接并使用数据库 创建employees表 创建orders表? 创建invoices表?? ?查看建立的表 前情提要 需要下载mysql并进行配置&#xff0c;建议下载8.0.37&#xff0c;详情可见MySQL超详细安装配置教程(亲测有效)_mysql安装教程-CSDN博客 题目解析…...

机器学习笔记——常用损失函数

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本笔记介绍机器学习中常见的损失函数和代价函数&#xff0c;各函数的使用场景。 热门专栏 机器学习 机器学习笔记合集 深度学习 深度学习笔记合集 文章目录 热门…...

谷粒商城学习笔记-13-配置git-ssh-配置代码免密提交

安装配置 git 1 、下载 git &#xff1a; https://git-scm.com 下载git客户端&#xff0c;右键桌面Git GUI/bash Here。进入bash 2 、配置 git &#xff0c;进入 git bash # 配置用户名 git config --global user.name "username" //(名字&#xff0c;随意写)# …...

51单片机学习——静态数码管显示

1. 数码管介绍 LED数码管&#xff1a;数码管是一种简单、廉价的显示器&#xff0c;是由多个发光二极管封装在一起组成“8”字型的器件。 2. 数码管引脚定义 LED的阴极连接到一个端口上是共阴极连接&#xff0c;称为共阴极数码管。LED的阳极连接到一个端口上是共阳极连接&…...

Qt5 C++ TcpSocket 如何判断是服务主动断开tcp socket连接?

文章目录 实现思路示例代码代码解释主要功能和用法注意事项 在 Qt 5.9.9 的 C 开发中&#xff0c;使用 QTcpSocket 时&#xff0c;要判断是服务端主动断开 TCP Socket 连接&#xff0c;可以通过处理 QTcpSocket 的 disconnected 信号&#xff0c;结合 QTcpSocket 的状态以及…...

UEFI Spec 学习笔记---9 - Protocols — EFI Loaded Image

本节定义EFI_LOADED_IMAGE_PROTOCOL和 EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL。这些协议分别描述了已加载到内存中的映像&#xff0c;并指定了PE/COFF映像通过EFI引导服务LoadImage()加载 时使用的设备路径。这些描述包括 load image 的源、映像在内存中的当前位置、为image分…...

Deepseek 与 ChatGPT:AI 浪潮中的双子星较量

引言 在人工智能飞速发展的当下&#xff0c;AI 语言模型成为了人们关注的焦点。Deepseek 与 ChatGPT 作为其中的佼佼者&#xff0c;各自展现出独特的魅力&#xff0c;引领着 AI 技术的发展潮流。今天&#xff0c;就让我们深入探讨这两款模型&#xff0c;看看它们在 AI 领域中是…...

open-webui安装

docker安装openwebui 拉取镜像 docker pull ghcr.io/open-webui/open-webui:maindocker images启动 docker run -d -p 8346:8080 --name open-webui ghcr.io/open-webui/open-webui:maindocker ps查看端口占用 lsof -i:8346访问地址 http://ip:port http://127.0.0.1:8346...

docker 安装jenkins

使用docker 容器安装jenkins比较方便&#xff0c;但是细节比较重要&#xff0c;这里实战安装了一遍&#xff0c;可用&#xff1a; 拉取最新的jenkins镜像 docker pull jenkins/jenkins 如果没有翻墙的话&#xff0c;可以会有下面的报错&#xff1a; Error response from dae…...

前端利器:DateUtils 日期时间工具深度剖析

序言 在前端开发中&#xff0c;日期和时间的处理是一个常见且重要的任务。从格式化日期展示到复杂的日期计算&#xff0c;每一个环节都需要精确和高效的代码支持。今天&#xff0c;我们就来深入探讨一个精心打造的前端日期时间工具类 DateUtils&#xff0c;它涵盖了从基础的日…...

Denoising Diffusion Restoration Models论文解读

论文要点 恢复的线性逆问题可以使用预训练的DDPM完成&#xff1a;1. 将降质矩阵使用SVD&#xff0c;得到分解矩阵&#xff1b;2. 使用分解矩阵将图像投影到降质类型间共享的谱空间&#xff1b;3. 谱空间中执行DDPM。 评价 同Track的方法同样很多&#xff0c;比如后续的DDNM、…...

【Windows API】SetFilePointerEx函数用法介绍

目录 一、函数概述 二、函数原型与参数解析 1. hFile&#xff08;文件句柄&#xff09; 2. liDistanceToMove&#xff08;移动距离&#xff09; 3. lpNewFilePointer&#xff08;新指针位置&#xff09; 4. dwMoveMethod&#xff08;移动基准点&#xff09; 三、返回值与…...

uniapp uni.request重复请求处理

类似这种切换tab时&#xff0c;如果操作很快并且网络不太好&#xff0c;就出现数据错乱&#xff0c;在网上查了一圈&#xff0c;有一个使用uview拦截处理的&#xff0c;但是原生uni.requse没有找到详细的解决办法&#xff0c;就查到使用 abort 方法&#xff0c;我自己封装了一个…...

unity学习47:寻路和导航,unity2022后版本如何使用 Navmesh 和 bake

目录 1 寻路和导航对移动的不同 1.1 基础的移动功能 1.1.1 基础移动 1.1.2 智能导航寻路 1.1.3 智能导航寻路还可以 2 如何实现这个效果&#xff1f; 2.1 通过地图网格的形式 2.1.1 警告信息 the static value has been deprecated的对应搜索 2.1.2 新的navigation ba…...

Windows安装node.js详细教程

一、什么是node.js Node.js 是一个基于 Chrome V8 引擎的javascript运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。 Node 是一个让 JavaScript 运行在服务端的开发平台&#xff0c;它让javascript成为与PHP、Python等服务端语言平起平坐的脚步语言。 由 Rya…...

大模型领域常见的专业术语和关键词及简要解释

现在大语言模型非常火热,特别是deepseek,想要了解、学习、应用、设计开发大模型,则我们需要先知道大模型邻域都包含哪些方面,以及在大模型领域的各个方面,都有哪些常见的专业术语和关键词。 以下我们从大模型领域的模型架构、训练方法到优化技术、应用和伦理问题等多个方…...

单细胞转录组画小提琴VlnPlot只显示需要类型细胞

探序基因肿瘤研究院 整理 在R语言中&#xff0c;单细胞转录组数据画小提琴图中&#xff0c;我们如果想只展示出需要的特定细胞类型&#xff0c;可以把这需要展示的细胞类型单独构建成一个Seurat对象&#xff0c;再画图。 例如我们在Seurat对象中的meta.data表格中&#xff0c…...

UE 播放视频

一.UI播放视频 1.导入视频文件至工程文件夹 2.文件夹内右健选择Media -> File Meida Source创建testFileMeidaSource文件。 编辑FilePath为当前视频 3.右键->Media->Media Player 创建testMediaPlayer文件 4.右键创建testMediaTexture。编辑MediaPlayer设置testMedia…...

当pcie设备变化时centos是否会修改网络设备的名称(AI回答)

当pcie设备变化时centos是否会修改网络设备的名称 在CentOS&#xff08;以及其他基于Linux的操作系统&#xff09;中&#xff0c;网络接口的命名通常遵循特定的规则&#xff0c;尤其是在使用PCIe设备&#xff08;如网络适配器&#xff09;时。网络接口的命名通常基于设备的物理…...

SpringSecurity基于配置方法控制访问权限:MVC匹配器、Ant匹配器

Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架。在 Spring Security 中&#xff0c;可以通过配置方法来控制访问权限。认证是实现授权的前提和基础&#xff0c;在执行授权操作前需要明确目标用户&#xff0c;只有明确目标用户才能明确它所具备的角色和权…...

《养生》(二)

一、基础生活调整 1‌.作息规律‌ 固定每天7-8小时睡眠&#xff0c;尽量22:30前入睡&#xff0c;晨起后拉开窗帘晒太阳5分钟&#xff0c;调节生物钟‌ ‌2.饮食优化‌ 三餐定时&#xff0c;每餐细嚼慢咽20次以上&#xff0c;优先吃蔬菜和蛋白质&#xff08;如鸡蛋、豆腐&#x…...

本地部署MindSearch(开源 AI 搜索引擎框架),然后上传到 hugging face的Spaces——L2G6

部署MindSearch到 hugging face Spaces上——L2G6 任务1 在 官方的MindSearch页面 复制Spaces应用到自己的Spaces下&#xff0c;Space 名称中需要包含 MindSearch 关键词&#xff0c;请在必要的步骤以及成功的对话测试结果当中 实现过程如下&#xff1a; 2.1 MindSearch 简…...