tomcat多实例部署jenkins
tomcat多实例部署jenkins
文章目录
- tomcat多实例部署jenkins
- 1.简介:
- 2.优缺点:
- 3.工作原理:
- 4.工作流程:
- 5.tomcat多实例部署jenkins流程
- 5.1.环境说明
- 5.2.部署前准备工作
- 5.3.多实例部署tomcat
- 5.4.部署jenkins
- 5.5.创建一个jenkins项目
- 5.6.配置jenkins自动拉取项目,进行打包(maven),并将包传输到tomcat的项目目录(webapps)中
1.简介:
Jenkins是一个可扩展的、基于Web的工具,用于自动化构建、测试和部署软件项目。它支持各种版本控制系统、构建工具和测试框架,并提供了丰富的插件生态系统来满足不同的需求。
2.优缺点:
优点:
- 灵活性:Jenkins可以与多种工具和平台集成,支持各种编程语言和技术栈,因此非常灵活适应不同的项目需求。
- 易用性:Jenkins具有用户友好的Web界面和可视化配置,使得配置和管理任务变得简单易上手。
- 扩展性:Jenkins拥有丰富的插件生态系统,可以通过插件来扩展其功能,满足特定项目需要。
- 社区支持:Jenkins拥有庞大的活跃社区,它提供了大量的文档、教程和支持,可以帮助解决常见问题和获取最新的功能和改进。
缺点:
- 配置复杂:有时,Jenkins的配置可能因其灵活性而变得复杂,特别是在处理复杂的构建和部署流程时。
- 学习曲线:对于新手来说,学习和理解Jenkins的概念和使用方式可能需要一些时间和努力。
3.工作原理:
Jenkins的工作原理基于事件驱动和插件系统。它通过不断监测源代码管理系统中的代码变更或预定的时间触发事件,然后根据预定义的构建配置和操作来执行构建、测试和部署任务。
- 事件驱动机制:
- 源代码变更事件:Jenkins可以监测源代码管理系统(如Git、SVN)中的代码变更事件。它通过轮询或钩子机制,检查源代码是否发生了变更。
- 时间触发器:Jenkins还可以按计划(定时触发器)执行构建任务。开发人员可以设置特定的时间或时间表,使Jenkins在指定时间触发构建。
- 项目配置:
- 用户通过Jenkins的Web界面创建或导入项目。在项目配置中,用户可以设置各种参数,如源代码管理、构建触发器、构建参数、构建步骤等。这些配置决定了Jenkins如何执行构建任务。
- 构建过程:
- Jenkins使用定义在项目配置中的构建过程来执行构建任务。构建过程包括一系列步骤,如代码拉取、构建、测试、部署等。每个步骤可以由用户指定或使用插件提供的工具和命令来执行。
- 执行构建任务:
- 当满足设定的构建触发条件(如源代码变更或时间触发)时,Jenkins将自动开始执行构建任务。它会根据项目配置中定义的构建过程逐步执行每个步骤。
- 结果和报告:
- 在构建过程中,Jenkins跟踪记录构建任务的执行状态和结果。它会生成构建日志、报告和统计信息,以供用户查看和分析构建结果。
- 插件系统:
- Jenkins拥有丰富的插件生态系统,用户可以根据项目需要选择并安装插件。这些插件提供了额外的功能和扩展,例如集成测试框架、静态代码分析工具、部署工具等。插件可以通过Jenkins的Web界面进行管理和配置。
4.工作流程:
- 配置Jenkins服务器:安装Jenkins并进行初始化配置,设置插件、环境变量、权限等。
- 创建或导入项目:在Jenkins中创建新项目或导入现有项目,并设置相关配置,如源代码管理、构建触发器等。
- 配置构建过程:定义构建过程,包括编译代码、运行测试、生成文档等。这可以通过脚本命令、构建步骤、构建脚本等方式来实现。
- 触发构建:Jenkins可以通过轮询源代码管理系统或根据时间计划来监测项目的变化,一旦有触发条件满足,就会触发构建过程。
- 构建执行:Jenkins根据配置的构建流程执行构建任务,包括代码拉取、构建、测试等操作。
- 构建结果和报告:Jenkins会记录构建的结果和日志,生成构建报告和统计信息,供团队查看和分析。
- 部署或集成:根据需要,Jenkins可以自动将构建的产物部署到目标环境,或与其他工具和平台集成,如持续部署工具、通知系统等。
5.tomcat多实例部署jenkins流程
5.1.环境说明
jenkins需部署在tomcat服务上
| 操作系统 | tomcat版本 | jenkins版本 |
|---|---|---|
| centos 8 | tomcat-9.0.80 | jenkins-2.414.2 |
5.2.部署前准备工作
//关闭防火墙和selinux
[root@tomcat ~]# systemctl disable --now firewalld
[root@tomcat ~]# setenforce 0
[root@tomcat ~]# vim /etc/selinux/config
[root@tomcat ~]# reboot //重启主机生效
[root@tomcat ~]# getenforce
Disabled //确保selinux状态为disabled//配置yum源,建议使用阿里云的centos8源
[root@tomcat ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed
100 2495 100 2495 0 0 2338 0 0:00:01 0:00:01 --:--:-- 2338
[root@tomcat ~]# yum clean all
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
17 files removed
[root@tomcat ~]# yum makecache
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
CentOS-8.5.2111 - Base - mirrors.aliyun.com 410 kB/s | 4.6 MB 00:11
CentOS-8.5.2111 - Extras - mirrors.aliyun.com 19 kB/s | 10 kB 00:00
CentOS-8.5.2111 - AppStream - mirrors.aliyun.com 757 kB/s | 8.4 MB 00:11
Metadata cache created.
5.3.多实例部署tomcat
//安装java环境
[root@tomcat ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel wget vim
[root@tomcat ~]# java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)//拉取tomcat软件包
[root@tomcat ~]# wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.80/bin/apache-tomcat-9.0.80.tar.gz
--2023-10-10 13:41:29-- https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.80/bin/apache-tomcat-9.0.80.tar.gz
Resolving archive.apache.org (archive.apache.org)... 65.108.204.189, 2a01:4f9:1a:a084::2
Connecting to archive.apache.org (archive.apache.org)|65.108.204.189|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11692853 (11M) [application/x-gzip]
Saving to: ‘apache-tomcat-9.0.80.tar.gz’apache-tomcat-9.0.80.tar.gz 100%[===============================================>] 11.15M 25.2KB/s in 5m 55s 2023-10-10 13:47:25 (32.1 KB/s) - ‘apache-tomcat-9.0.80.tar.gz’ saved [11692853/11692853][root@tomcat ~]# ls
anaconda-ks.cfg apache-tomcat-9.0.80.tar.gz//解压tomcat软件包
[root@tomcat ~]# tar xf apache-tomcat-9.0.80.tar.gz
[root@tomcat ~]# ls
anaconda-ks.cfg apache-tomcat-9.0.80 apache-tomcat-9.0.80.tar.gz jenkins.war//将解压后的目录复制两份放到/usr/local/目录下,一个用于运行jenkins,另一个用来运行tomcat中的项目
[root@tomcat ~]# cp -r apache-tomcat-9.0.80 /usr/local/jenkins
[root@tomcat ~]# cp -r apache-tomcat-9.0.80 /usr/local/tomcat
[root@tomcat ~]# ls /usr/local/ && cd /usr/local/
bin etc games include jenkins lib lib64 libexec sbin share src tomcat//更改tomcat中的端口号,与jenkins以示区分
[root@tomcat ~]# cd /usr/local/tomcat/conf/
[root@tomcat conf]# ls
catalina.policy context.xml jaspic-providers.xsd server.xml tomcat-users.xsd
catalina.properties jaspic-providers.xml logging.properties tomcat-users.xml web.xml
[root@tomcat conf]# vim server.xml
[root@tomcat conf]# grep -A1 '<Server port' server.xml
<Server port="8006" shutdown="SHUTDOWN"><Listener className="org.apache.catalina.startup.VersionLoggerListener" />
[root@tomcat conf]# grep -A3 '<Connector port' server.xml<Connector port="8081" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8444"maxParameterCount="1000"
//开启服务,查看端口
[root@tomcat conf]# ../bin/catalina.sh start
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@tomcat conf]# cd
[root@tomcat ~]# cd /usr/local/jenkins/
[root@tomcat jenkins]# bin/catalina.sh start
Using CATALINA_BASE: /usr/local/jenkins
Using CATALINA_HOME: /usr/local/jenkins
Using CATALINA_TMPDIR: /usr/local/jenkins/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/jenkins/bin/bootstrap.jar:/usr/local/jenkins/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@tomcat jenkins]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 1 [::ffff:127.0.0.1]:8006 *:*
LISTEN 0 100 *:8080 *:*
LISTEN 0 100 *:8081 *:*
5.4.部署jenkins
Jenkins官网https://www.jenkins.io/download/
///安装Jenkins所需要的Java-17-openjdk
[root@tomcat local]# cd jenkins/
[root@tomcat jenkins]# yum -y install java-17-openjdk java-17-openjdk-devel//由于安装tomcat时安装的Java1.8,但是Jenkins需要Java17,为了防止版本冲突,需要配置jdk的优先级,从而能够同时使用这两个版本
[root@tomcat jenkins]# alternatives --config java //优先使用java-17-openjdkThere are 2 programs which provide 'java'.Selection Command
-----------------------------------------------1 java-17-openjdk.x86_64 (/usr/lib/jvm/java-17-openjdk-17.0.1.0.12-2.el8_5.x86_64/bin/java)
*+ 2 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64/jre/bin/java)Enter to keep the current selection[+], or type selection number: 1
[root@tomcat ~]# bash //bash使其生效 //下载jenkins.war的包
[root@tomcat ~]# wget wget https://get.jenkins.io/war-stable/2.414.2/jenkins.war
[root@tomcat ~]# ls
anaconda-ks.cfg apache-tomcat-9.0.80 apache-tomcat-9.0.80.tar.gz jenkins.war////将Jenkins包复制到我们为其准备的其中一个tomcat的/usr/local/jenkins/webapps/目录中去,也就是我们前面复制的jenkins中去
[root@tomcat ~]# cp jenkins.war /usr/local/jenkins/webapps/
[root@tomcat ~]# cd /usr/local/jenkins/webapps/
[root@tomcat webapps]# ls
docs examples host-manager jenkins.war manager ROOT//重启服务后,则会自动解压jenkins.war
[root@tomcat webapps]# ../bin/catalina.sh stop
Using CATALINA_BASE: /usr/local/jenkins
Using CATALINA_HOME: /usr/local/jenkins
Using CATALINA_TMPDIR: /usr/local/jenkins/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/jenkins/bin/bootstrap.jar:/usr/local/jenkins/bin/tomcat-juli.jar
Using CATALINA_OPTS:
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
[root@tomcat webapps]# ../bin/catalina.sh start
Using CATALINA_BASE: /usr/local/jenkins
Using CATALINA_HOME: /usr/local/jenkins
Using CATALINA_TMPDIR: /usr/local/jenkins/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/jenkins/bin/bootstrap.jar:/usr/local/jenkins/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@tomcat webapps]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 *:*
LISTEN 0 1 [::ffff:127.0.0.1]:8006 *:*
LISTEN 0 100 *:8080 *:*
LISTEN 0 100 *:8081 *:*
[root@tomcat webapps]# ls //jenkins自动解压
docs examples host-manager jenkins jenkins.war manager ROOT
访问jenkins页面

[root@tomcat webapps]# cat /root/.jenkins/secrets/initialAdminPassword
3a5952875fdc4a4c91fc87d480f32338
安装推荐插件


创建一个用户




部署完成
5.5.创建一个jenkins项目




测试

5.6.配置jenkins自动拉取项目,进行打包(maven),并将包传输到tomcat的项目目录(webapps)中
安装所需的软件包
[root@tomcat ~]# yum -y install git maven
[root@tomcat ~]# which git
/usr/bin/git
[root@tomcat ~]# which mvn
/usr/bin/mvn
修改test项目的流水线脚本内容


脚本内容:
//在gitee网站上拉取一个项目目录,然后领用mvn命令压缩至我们想要的.war格式,再将压缩包放置到tomcat的项目目录中,重启tomcat服务后自动解压,从而能够通过tomcat服务端口号访问到我们拉取的项目网页
pipeline {agent anystages {stage('pull code and package') {steps {git 'https://gitee.com/forgotten/tomcat-java-demo.git'sh 'mvn clean package'}}stage('publish') {steps { sh 'cp /root/tomcat-java-demo/target/ly-simple-tomcat-0.0.1-SNAPSHOT.war /usr/local/tomcat/webapps/ftx.war'sh '/usr/local/tomcat/bin/catalina.sh stop && /usr/local/tomcat/bin/catalina.sh start'}}}
}

通过jenkins压缩的包存放位置
[root@tomcat target]# ls
classes ly-simple-tomcat-0.0.1-SNAPSHOT maven-archiver
generated-sources ly-simple-tomcat-0.0.1-SNAPSHOT.war maven-status
[root@tomcat target]# pwd
/root/.jenkins/workspace/test/target
进入tomcat项目进行查看
[root@tomcat webapps]# pwd
/usr/local/tomcat/webapps
[root@tomcat webapps]# ls
docs examples ftx ftx.war host-manager manager ROOT
通过8081端口访问我们拉取的项目
generated-sources ly-simple-tomcat-0.0.1-SNAPSHOT.war maven-status
[root@tomcat target]# pwd
/root/.jenkins/workspace/test/target
**进入tomcat项目进行查看**~~~powershell
[root@tomcat webapps]# pwd
/usr/local/tomcat/webapps
[root@tomcat webapps]# ls
docs examples ftx ftx.war host-manager manager ROOT
通过8081端口访问我们拉取的项目

访问成功
相关文章:
tomcat多实例部署jenkins
tomcat多实例部署jenkins 文章目录 tomcat多实例部署jenkins1.简介:2.优缺点:3.工作原理:4.工作流程:5.tomcat多实例部署jenkins流程5.1.环境说明5.2.部署前准备工作5.3.多实例部署tomcat5.4.部署jenkins5.5.创建一个jenkins项目5…...
强连通分量+缩点
[图论与代数结构 701] 强连通分量 题目描述 给定一张 n n n 个点 m m m 条边的有向图,求出其所有的强连通分量。 注意,本题可能存在重边和自环。 输入格式 第一行两个正整数 n n n , m m m ,表示图的点数和边数。 接下来…...
如何做系统架构设计
文章目录 1、如何进行架构设计体系架构需求体系架构设计体系架构文档化体系架构复审体系架构实现体系架构演化 2、架构设计注意事项分治原则服务自治拥抱变化可维护性考虑依赖和限制阅读代码注意事项 3、最后 系统架构应该如何设计,从自己做架构的经历来分享一些体…...
L14D6内核模块编译方法
一、内核模块基础代码解析 一个内核模块代码错误仍然会导致的内核崩溃。 GPL协议:开源规定,使用内核一些函数需要 1、单内核的缺点 单内核扩展性差的缺点减小内核镜像文件体积,一定程度上节省内存资源提高开发效率不能彻底解决稳定性低的缺…...
PyTorch入门教学——dir()函数和help()函数的应用
1、简介 已知PyTorch是一个工具包,其中包含许多功能函数。dir()函数和help()函数是学习PyTorch包的重要法宝。 dir():能让我们知道工具包以及工具包中的分隔区有什么东西。help():能让我们知道每个工具是如何使用的,即工具的使用…...
使用Elasticsearch来进行简单的DDL搜索数据
说明:Elasticsearch提供了多种多样的搜索方式来满足不同使用场景的需求,我们可以使用Elasticsearch来进行各种复制的查询,进行数据的检索。 1.1 精准查询 用来查询索引中某个类型为keyword的文本字段,类似于SQL的“”查询。 创…...
【软考】9.3 二叉树存储/遍历/线索/最优/查找/平衡
《树与二叉树》 二叉树的顺序存储结构 顺序存储只适用于完全二叉树和满二叉树,一般二叉树不适用i 2 的左孩子为 2i 4,右孩子为 2i 1 5 二叉树的链式存储结构 链式存储适用于二叉树;空结点用“∧”表示二叉链表:左孩子࿰…...
关于矿井地面电力综合自动化系统的研究与产品选型
安科瑞 崔丽洁 摘要:煤矿供电系统是煤矿生产的重要动力保障 , 一旦电力中断 , 生产将被迫停止 , 同时停电后容易发生瓦斯积聚爆炸、淹井等恶性事故,现有配电室采用不同厂商的保护装 置产品,没有形成有效的监控配电系统,不便于管…...
论文阅读:Offboard 3D Object Detection from Point Cloud Sequences
目录 概要 Motivation 整体架构流程 技术细节 3D Auto Labeling Pipeline The static object auto labeling model The dynamic object auto labeling model 小结 论文地址:[2103.05073] Offboard 3D Object Detection from Point Cloud Sequences (arxiv.o…...
Python学习基础笔记六十八——循环
循环是编程语言常见的流程控制。 Python语句要让计算机反复地做一些事情,就要用到循环语句。 有While和for循环。 while循环: command input("请输入命令:") while command ! exit:print(f输入的命令是{command})command input("请输…...
部署k8s dashboard(这里使用Kubepi)
9. 部署k8s dashboard(这里使用Kubepi) Kubepi是一个简单高效的k8s集群图形化管理工具,方便日常管理K8S集群,高效快速的查询日志定位问题的工具 部署KubePI(随便在哪个节点部署,我这里在主节点部署&#…...
Java Lambda表达式的使用
我们了解了 java Lambda 的概念并可以在匿名类的场合使用 Lambda 语法进行简单替换。本节主要介绍在 Java 中如何使用 Lambda 表达式。 作为参数使用Lambda表达式 Lambda 表达式一种常见的用途就是作为参数传递给方法,这需要声明参数的类型声明为函数式接口类型。…...
【初始C语言8】详细讲解初阶结构体的知识
前言 💓作者简介: 加油,旭杏,目前大二,正在学习C,数据结构等👀 💓作者主页:加油,旭杏的主页👀 ⏩本文收录在:再识C进阶的专栏…...
<C++> IO流
C语言的输入与输出 在C语言当中,我们使用最频繁的输入输出方式就是scanf与printf: scanf: 从标准输入设备(键盘)读取数据,并将读取到的值存放到某一指定变量当中。printf: 将指定的数据输出到…...
基于单目相机的2D测量(工件尺寸和物体尺寸)
目录 1.简介 2.基于单目相机的2D测量 2.1 想法: 2.2 代码思路 2.2 主函数部分 1.简介 基于单目相机的2D测量技术在许多领域中具有重要的背景和意义。 工业制造:在工业制造过程中,精确测量是确保产品质量和一致性的关键。基于单目相机的2…...
23面向对象案例1
目录 1、计算连续表达式的一个过程 2、优化后的代码 为什么不能return resultn? 3、用面向对象的方法可以解决冗余的问题,但是还是不能解决result的值可以被随意修改的问题 4、解决不能被随意修改的问题,可以将类属性改成私有变量吗&…...
go语言基础之常量与itoa
视频学习地址:Go零基础入门_在线视频教程-CSDN程序员研修院 一. 常量 定义:常量是一个简单值的标识符,在程序运行时,不会被修改的量。注意:常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数…...
民宿酒店订房房态商城小程序的作用是什么
外出旅游出差,酒店民宿总是很好的选择,随着经济复苏,各地旅游及外出办公人次增多,酒店成绩随之增加,市场呈现多品牌酒店经营形式。 区别于以前,如今互联网深入各个行业,酒店经营也面临着困境。…...
acwing算法基础之数据结构--栈和队列
目录 1 知识点2 模板 1 知识点 栈:先进后出。先进的就是栈底,后进的就是栈顶。后进先出嘛,所以在栈顶弹出元素。 队列:先进先出。先进的就是队头,后进的就是队尾。先进先出嘛,所以在队头弹出元素。 单调…...
关于导出的Excel文件的本质
上篇文章中提到关于xlsx改造冻结窗格的代码,我是怎么知道要加pane的呢,加下来就把我的心路历程记录一下。 我改造之前也是没有头绪的,我网上查了很多,只告诉我如何使用,但源码里没有针对!freeze的处理,所以…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
mac 安装homebrew (nvm 及git)
mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用: 方法一:使用 Homebrew 安装 Git(推荐) 步骤如下:打开终端(Terminal.app) 1.安装 Homebrew…...
PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...
ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...
LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)
在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...
