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

Maven 依赖管理全面解析

目录

1. Maven 简介

2. 依赖的基本概念

依赖坐标

依赖范围

3. Maven 仓库

本地仓库

远程仓库

4. 依赖传递

5. 依赖冲突

6. 在 pom.xml 文件中管理依赖

基本依赖配置

依赖范围配置

依赖排除配置

依赖管理配置()


1. Maven 简介

Maven 是一个强大的项目管理和构建自动化工具,广泛应用于 Java 项目。它提供了标准化的项目结构、依赖管理和构建流程,极大地提高了开发效率。依赖管理是 Maven 的核心功能之一,它允许开发者通过简单的配置来引入和管理项目所需的第三方库。

2. 依赖的基本概念
依赖坐标

Maven 使用一组坐标来唯一标识一个依赖,包括 groupIdartifactIdversion,还可包含可选的 packaging 和 classifier

  • groupId:通常是公司或组织的域名倒写,用于区分不同的组织或项目组。例如,org.springframework 代表 Spring 框架所属的组织。
  • artifactId:是项目或模块的名称,在 groupId 下具有唯一性。如 spring - core 是 Spring 框架的核心模块。
  • version:指定依赖的版本号,Maven 依据此版本号从仓库获取相应的依赖。
  • packaging:常见的有 jar(普通 Java 类库)、war(Web 应用)等,默认值为 jar
  • classifier:可选属性,用于区分同一 artifact 的不同构建版本,如带有 sources 分类器的 jar 文件可提供源代码。
依赖范围

不同的依赖在项目的不同阶段有不同的作用,Maven 定义了几种依赖范围:

  • compile:默认范围,依赖在项目的编译、测试和运行阶段都需要。例如,项目使用 Spring 框架的核心库,在各个阶段都依赖这些库。
  • test:只在测试阶段使用,如 JUnit 测试框架,仅用于编写和执行单元测试,项目实际运行时无需。
  • provided:编译和测试阶段需要,但运行时由容器提供。例如,Servlet API,开发 Web 应用时用于编译和测试 Servlet 代码,部署到 Web 容器后,容器本身提供该 API。
  • runtime:编译阶段不需要,但运行和测试阶段需要。如数据库驱动,项目代码编译时无需直接引用,但运行和测试时用于连接数据库。
3. Maven 仓库
本地仓库

Maven 会将从远程仓库下载的依赖存储在本地仓库中,默认位置是用户目录下的 .m2/repository 文件夹。当项目需要依赖时,Maven 先在本地仓库查找,避免重复下载。

远程仓库

  • 中央仓库:Maven 默认的远程仓库,由 Sonatype 维护,包含大量常用的开源库。项目添加 Spring 框架依赖时,Maven 首先尝试从中央仓库获取。
  • 私服:企业或组织内部搭建的仓库,用于存储内部开发的库或对外部库进行定制化管理,提高内部开发效率,控制依赖的安全性和版本。
4. 依赖传递

当项目 A 依赖项目 B,项目 B 又依赖项目 C 时,Maven 会自动处理这种依赖传递关系。例如,项目 A 依赖 Spring Boot Starter Web,该库又依赖 Spring Web 及其他库,Maven 会自动将 Spring Web 及其相关依赖下载到项目 A 的本地仓库,并根据依赖范围确定其在项目 A 中的使用方式。不过,依赖传递可能导致版本冲突问题。

5. 依赖冲突

项目的依赖树中出现同一个库的不同版本时会产生依赖冲突。例如,项目 A 直接依赖库 X 的版本 1.0,又通过依赖传递间接依赖库 X 的版本 2.0。Maven 默认选择离项目更近的依赖版本,开发者也可通过 <dependencyManagement> 标签手动管理和解决依赖冲突。

6. 在 pom.xml 文件中管理依赖
基本依赖配置

在 pom.xml 文件中,通过 <dependencies> 标签包含所有依赖,每个依赖使用 <dependency> 子标签配置。示例如下:

xml

<project><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>my - project</artifactId><version>1.0.0</version><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring - core</artifactId><version>5.3.28</version></dependency></dependencies>
</project>
依赖范围配置

结合不同的依赖范围,在 pom.xml 中的配置示例如下:

xml

<dependencies><!-- compile 范围 --><dependency><groupId>org.springframework</groupId><artifactId>spring - core</artifactId><version>5.3.28</version><!-- compile 是默认范围,可省略 --><!-- <scope>compile</scope> --></dependency><!-- test 范围 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency><!-- provided 范围 --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet - api</artifactId><version>4.0.1</version><scope>provided</scope></dependency><!-- runtime 范围 --><dependency><groupId>mysql</groupId><artifactId>mysql - connector - java</artifactId><version>8.0.26</version><scope>runtime</scope></dependency>
</dependencies>
依赖排除配置

当依赖传递引入不需要的依赖时,可使用 <exclusions> 标签排除。例如,项目依赖 spring - boot - starter - web,但不想引入其中的 Tomcat:

xml

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring - boot - starter - web</artifactId><version>2.7.5</version><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring - boot - starter - tomcat</artifactId></exclusion></exclusions>
</dependency>
依赖管理配置(<dependencyManagement>

通过 <dependencyManagement> 标签可统一管理项目中所有依赖的版本,避免版本混乱。示例如下:

收起

xml

<dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring - core</artifactId><version>5.3.28</version></dependency></dependencies>
</dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring - core</artifactId></dependency>
</dependencies>

在上述示例中,子模块可继承 <dependencyManagement> 中定义的版本,使整个项目的依赖管理更规范。

相关文章:

Maven 依赖管理全面解析

目录 1. Maven 简介 2. 依赖的基本概念 依赖坐标 依赖范围 3. Maven 仓库 本地仓库 远程仓库 4. 依赖传递 5. 依赖冲突 6. 在 pom.xml 文件中管理依赖 基本依赖配置 依赖范围配置 依赖排除配置 依赖管理配置&#xff08;&#xff09; 1. Maven 简介 Maven 是一个…...

基于C#语言的海康威视智能车牌识别系统

基于C#语言的海康威视智能车牌识别系统&#xff0c;通过布控对来往车辆进行检测抓拍 资源文件列表 AICar.sln , 984 AICar.sln.GhostDoc.xml , 1306 AICar.v12.suo , 72704 AICar/AICar.csproj , 3573 AICar/AICar.csproj.user , 228 AICar/bin/Debug/AICar.exe , 220672 AIC…...

RabbitMQ 从入门到精通:从工作模式到集群部署实战(五)

#作者&#xff1a;闫乾苓 系列前几篇&#xff1a; 《RabbitMQ 从入门到精通&#xff1a;从工作模式到集群部署实战&#xff08;一&#xff09;》&#xff1a;link 《RabbitMQ 从入门到精通&#xff1a;从工作模式到集群部署实战&#xff08;二&#xff09;》&#xff1a; lin…...

清理服务器/docker容器

清理服务器 服务器或docker容器清理空间。 清理conda环境 删除不用的conda虚拟环境&#xff1a; conda env remove --name python38 conda env remove --name python310清理临时目录&#xff1a;/tmp du -sh /tmp # 查看/tmp目录的大小/tmp 目录下的文件通常是可以直接删除…...

【专题】2024-2025人工智能代理深度剖析:GenAI 前沿、LangChain 现状及演进影响与发展趋势报告汇总PDF洞察(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p39630 在科技飞速发展的当下&#xff0c;人工智能代理正经历着深刻的变革&#xff0c;其能力演变已然成为重塑各行业格局的关键力量。从早期简单的规则执行&#xff0c;到如今复杂的自主决策与多智能体协作&#xff0c;人工智能代理…...

广度优先搜索(BFS)算法详解——以走迷宫问题为例

引言&#xff1a;当算法遇见迷宫 想象你置身于一个复杂的迷宫&#xff0c;如何在最短时间内找到出口&#xff1f;这个问题不仅存在于童话故事中&#xff0c;更是计算机科学中经典的路径搜索问题。本文将带你通过走迷宫问题&#xff0c;深入理解广度优先搜索&#xff08;BFS&am…...

【大数据技术】用户行为日志分析(python+hadoop+mapreduce+yarn+hive)

用户行为日志分析(python+hadoop+mapreduce+yarn+hive) 搭建完全分布式高可用大数据集群(VMware+CentOS+FinalShell) 搭建完全分布式高可用大数据集群(Hadoop+MapReduce+Yarn) 本机PyCharm远程连接虚拟机Python 搭建完全分布式高可用大数据集群(MySQL+Hive)...

C语言基础之【数组和字符串】(上)

C语言基础之【数组和字符串】&#xff08;上&#xff09; 概述一维数组一维数组的定义一维数组的初始化一维数组的访问一维数组的遍历数组名一维数组的常用数据强化训练一维数组的最值一维数组的逆置一维数组的排序&#xff08;冒泡排序&#xff09; 二维数组二维数组的定义二维…...

Maven插件—flatten-maven-plugin:工程模块统一版本依赖

文章目录 前言一、认识flatten-maven-plugin插件二、如何使用flatten-maven-plugin插件&#xff1f;未使用flatten-maven-plugin插件之前的情况描述配置flatten-maven-plugin插件步骤1&#xff1a;最外层父模块安装插件&配置版本变量步骤2&#xff1a;各个自模块使用版本使…...

Linux系统 环境变量

环境变量 写在前面概念查看环境变量main函数的参数argc & argvenv bash环境变量 写在前面 对于环境变量&#xff0c;本篇主要介绍基本概念及三四个环境变量 —— PATH、HOME、PWD。其中 PATH 作为 “ 敲门砖 ”&#xff0c;我们会更详细讲解&#xff1b;理解环境变量的全局…...

TAPEX:通过神经SQL执行器学习的表格预训练

摘要 近年来&#xff0c;语言模型预训练的进展通过利用大规模非结构化文本数据取得了巨大成功。然而&#xff0c;由于缺乏大规模高质量的表格数据&#xff0c;在结构化表格数据上应用预训练仍然是一个挑战。本文提出了TAPEX&#xff0c;通过在一个合成语料库上学习神经SQL执行…...

Ruby:从宝石到编程语言的奇妙联系(中英双语)

Ruby&#xff1a;从宝石到编程语言的奇妙联系 在珠宝世界中&#xff0c;红宝石&#xff08;Ruby&#xff09;是一种象征热情、力量和高贵的珍贵宝石&#xff1b;而在编程世界中&#xff0c;Ruby则是一门灵活、优雅且富有创造力的编程语言。那么&#xff0c;这两者究竟有何联系…...

RLHF中的on-policy和off-policy的区别

在LLM&#xff08;大语言模型&#xff09;和RLHF&#xff08;基于人类反馈的强化学习&#xff09;中&#xff0c;on-policy和off-policy的主要区别在于数据的来源和策略更新的方式。以下是两者的详细对比以及各自的典型算法&#xff1a; On-policy 和 Off-policy 的区别 特性…...

计算机考研复试上机02

目录 3、排序 1)排序(华中科技大学复试上机题) 2)成绩排序(清华大学复试上机题) 3)特殊排序(华中科技大学复试上机题) 4)整数奇偶排序(北京大学复试上机题) 5)小白鼠排队(北京大学复试上机题) 4、查找 1)找 x(哈尔滨工业大学复试上机题) 2)查找(北…...

利用ETL工具进行数据挖掘

ETL的基本概念 数据抽取&#xff08;Extraction&#xff09;&#xff1a;从不同源头系统中获取所需数据的步骤。比如从mysql中拿取数据就是一种简单的抽取动作&#xff0c;从API接口拿取数据也是。 数据转换&#xff08;Transformation&#xff09;&#xff1a;清洗、整合和转…...

02DevOps基础环境准备

准备两台Linux的操作系统&#xff0c;最简单的方式就是在本机上使用虚拟机搭建两个操作系统&#xff08;实际生产环境是两台服务器&#xff0c;虚拟机的方式用于学习使用&#xff09; 我搭建的两台服务器的ip分别是192.168.1.10、192.168.1.11 192.168.1.10服务器用于安装doc…...

Kafka 入门与实战

一、Kafka 基础 1.1 创建topic kafka-topics.bat --bootstrap-server localhost:9092 --topic test --create 1.2 查看消费者偏移量位置 kafka-consumer-groups.bat --bootstrap-server localhost:9092 --describe --group test 1.3 消息的生产与发送 #生产者 kafka-cons…...

VM虚拟机安装群晖系统

下载群晖系统 https://download.csdn.net/download/hmxm6/90351935 安装群晖连接软件 synology-assistant-6.2-24922(在上面的压缩包里面) 准备好VM虚拟机 创建群晖虚拟机 打开下载下来的虚拟机 添加硬盘 选择类型 创建新的磁盘 指定容量 指定存储文件 完成硬盘添加…...

关于ESP-IDF 5.4 中添加第三方组件esp32-camera找不到文件,编译错误解决办法(花了一天时间解决)

最近需要使用ESP32-S3-CAM 的OV2640摄像头采集图像&#xff0c;为了加速开发进度&#xff0c;于是选择了esp32-camera组件&#xff0c;该组件不是官方组件&#xff0c;需要自己git clone。但在为项目添加esp32-camera组件时&#xff0c;一直编译错误&#xff0c;找不到头文件&a…...

【C++】C++11

目录 C11简介 统一的列表初始化 {}初始化 std::initializer_list 声明 auto decltype nullptr 范围for循环 智能指针 STL中的一些变化 右值引用和移动语义 左值引用和右值引用 右值引用的意义 完美转发 lambda表达式 新的类功能 可变参数模版 包装器 func…...

Intellij IDEA如何查看当前文件的类

快捷键&#xff1a;CtrlF12&#xff0c;我个人感觉记快捷键很麻烦&#xff0c;知道具体的位置更简单&#xff0c;如果忘了快捷键&#xff08;KeyMap&#xff09;看一下就记起来了&#xff0c;不需要再Google or Baidu or GPT啥的&#xff0c;位置&#xff1a;Navigate > Fi…...

CF 278A.Circle Line

题目分析 输入n个数据作为路径&#xff0c;求从a到b的最短距离&#xff0c;需要将其相成一个圆圈&#xff0c;既可以从小往大走又可以从大往小走 思路分析 依然将数据存为数组&#xff0c;通过下标进行操作&#xff0c;既然说了有两种方式那就计算两种方式哪个更快就输出谁 代…...

Naive UI去掉n-select下拉框边框,去掉n-input输入框边框

1、第一种通过js去掉 <template><div><div style"margin-top:10px;width: 100%;"><dade-descriptions><tr><dade-descriptions-item label"代理名称"><dade-input placeholder"代理名称"></dade-…...

(文末提供数据集下载)ML.NET库学习001:基于PCA的信用卡异常检查之样本处理与训练

文章目录 (文末提供数据集下载)ML.NET库学习001&#xff1a;基于PCA的信用卡异常检查之样本处理与训练目标项目概述代码结构概述1. **主要类和文件**2. **命名空间和使用指令**3. **数据类 (TransactionObservation)**4. **主程序入口 (Main 方法)**5. **数据预处理 (DataPrepr…...

疯狂SQL转换系列- SQL for Milvs2.4

鉴于Milvus仍在不停的迭代新版本&#xff0c;推出新功能&#xff0c;其SDK目前并不稳定。目前其2.4版本的SDK接口已与之前的2.2版本有了较大的差别&#xff0c;功能上也有了一定的调整。为此&#xff0c;我们重新提供了针对[Milvus2.4](https://github.com/colorknight/moql-tr…...

C++的 I/O 流

本文把复杂的基类和派生类的作用和关系捋出来&#xff0c;具体的接口请参考相关文档 C的 I/O 流相关的类&#xff0c;继承关系如下图所示 https://zh.cppreference.com/w/cpp/io I / O 的概念&#xff1a;内存和外设进行数据交互称为 I / O &#xff0c;例如&#xff1a;把数…...

基于ansible部署elk集群

ansible部署 ELK部署 ELK常见架构 &#xff08;1&#xff09;ElasticsearchLogstashKibana&#xff1a;这种架构是最常见的一种&#xff0c;也是最简单的一种架构&#xff0c;这种架构通过Logstash收集日志&#xff0c;运用Elasticsearch分析日志&#xff0c;最后通过Kibana中…...

4.Python字符串和列表:字符串输入、字符串输出、下标和切片、字符串常见函数、列表(list)、列表的循环遍历、列表的增删改查、列表的嵌套、列表的切片

1. Python 字符串 1.1 字符串输入 input() 函数用于从用户获取字符串输入。它总是返回一个字符串类型的值。 # 从用户输入字符串 name input("请输入你的名字&#xff1a;") print(f"你好, {name}")1.2 字符串输出 字符串的输出通常使用 print() 函数…...

51单片机之使用Keil uVision5创建工程以及使用stc-isp进行程序烧录步骤

一、Keil uVision5创建工程步骤 1.点击项目&#xff0c;新建 2.新建目录 3.选择目标机器&#xff0c;直接搜索at89c52选择&#xff0c;然后点击OK 4.是否添加起吊文件&#xff0c;一般选择否 5.再新建的项目工程中添加文件 6.选择C文件 7.在C文件中右键&#xff0c;添加…...

Redis - 全局ID生成器 RedisIdWorker

文章目录 Redis - 全局ID生成器 RedisIdWorker一、引言二、实现原理三、代码实现代码说明 四、使用示例示例说明 五、总结 Redis - 全局ID生成器 RedisIdWorker 一、引言 在分布式系统中&#xff0c;生成全局唯一ID是一个常见的需求。传统的自增ID生成方式在分布式环境下容易出…...

Linux ftrace 内核跟踪入门

文章目录 ftrace介绍开启ftraceftrace使用ftrace跟踪指定内核函数ftrace跟踪指定pid ftrace原理ftrace与stracetrace-cmd 工具KernelShark参考 ftrace介绍 Ftrace is an internal tracer designed to help out developers and designers of systems to find what is going on i…...

Visual Studio(VS)没有显示垂直滚轮or垂直滚轮异常显示

前言&#xff1a; 前段时间&#xff0c;我换上了新电脑。满心欢喜地安装好 VS&#xff0c;准备大干一场时&#xff0c;却发现了一个小麻烦 —— 垂直滚轮显示异常&#xff08;如图 1&#xff09;。这种显示方式实在让我难以适应&#xff0c;每一次操作都觉得别扭。 于是&#…...

大数据数仓实战项目(离线数仓+实时数仓)3

1.课程内容和课程目标 2.订单时间维度指标需求分析 根据时间数据&#xff0c;生成一个时间维度表&#xff0c;我们后面还可以去复用这个时间维度表 3.使用kettle生成日期维度数据 Hive创建日期维度表 使用Kettle构建以下组件结构图 使用kettle生成日期维度数据插入到我们的hi…...

通过acme生成与续签ssl证书,并部署到nginx

通过acme生成与续签ssl证书&#xff0c;并部署到nginx 介绍 官方介绍&#xff1a; acme.sh 实现了 acme 协议&#xff0c;可以从 ZeroSSL&#xff0c;Lets Encrypt 等 CA 生成免费的证书。 安装 acme.sh 1. curl方式 curl https://get.acme.sh | sh -s emailmyexample.com…...

c语言对应汇编写法(以中微单片机举例)

芯片手册资料 1. 赋值语句 C语言&#xff1a; a 5; b a; 汇编&#xff1a; ; 立即数赋值 LDIA 05H ; ACC 5 LD R01,A ; R01 ACC&#xff08;a5&#xff09;; 寄存器间赋值 LD A,R01 ; ACC R01&#xff08;读取a的值&#xff09; LD R02,A ; R02 ACC&…...

React基础内容(面试一)

React大厂常见的面试题目涉及多个方面&#xff0c;包括React的基本概念、组件、状态管理、生命周期、性能优化等。以下是对这些面试题目的详细解析&#xff1a; 一、React基本概念 解释React是什么以及它的主要特点 React是一个用于构建用户界面的JavaScript库&#xff0c;由F…...

2025年软件测试五大趋势:AI、API安全、云测试等前沿实践

随着软件开发的不断进步&#xff0c;测试方法也在演变。企业需要紧跟新兴趋势&#xff0c;以提升软件质量、提高测试效率&#xff0c;并确保安全性&#xff0c;在竞争激烈的技术环境中保持领先地位。本文将深入探讨2025年最值得关注的五大软件测试趋势。 Parasoft下载https://…...

常用工具类——Collections集合框架

常用工具类——Collections集合框架 Collections 是 JDK 提供的一个工具类&#xff0c;提供了一系列静态方法&#xff0c;分类来复习&#xff01; 1.排序操作 reverse(List list) :反转顺序shuffle(List list) &#xff1a; 洗牌&#xff0c;将顺序打乱sort(List list) &…...

【大数据技术】搭建完全分布式高可用大数据集群(ZooKeeper)

搭建完全分布式高可用大数据集群(ZooKeeper) apache-zookeeper-3.8.4-bin.tar.gz注:请在阅读本篇文章前,将以上资源下载下来。 写在前面 本文主要介绍搭建完全分布式高可用集群 ZooKeeper 的详细步骤。 注意: 统一约定将软件安装包存放于虚拟机的/software目录下,软件…...

Docker Desktop安装kubernetes时一直在Starting:Kubernetes failed to start

原因&#xff1a;由于墙的问题&#xff0c;导致拉取国外的K8s镜像失败 解决&#xff1a; 下载 k8s-for-docker-desktop 选中自己的kubernetes 版本 下载zip包 PowerShell运行load_images.ps1文件 重启docker kubernetes运行成功...

物流中的物联网:其含义、应用和优势

随着世界联系日益紧密&#xff0c;物流格局正经历重大变革。科技已成为供应链管理的支柱&#xff0c;推动物流公司迈入效率与连通性兼具的新时代。 物联网&#xff08;IoT&#xff09;是一股变革性力量&#xff0c;重塑着物流与运输行业的架构。物联网在物流领域并非昙花一现的…...

Axure设计教程:动态排名图(中继器实现)

一、开篇 在Axure原型设计中&#xff0c;动态图表是展示数据和交互效果的重要元素。今天&#xff0c;我们将学习如何使用中继器来创建一个动态的排名图&#xff0c;该图表不仅支持自动轮播&#xff0c;还可以手动切换&#xff0c;极大地增强了用户交互体验。此教程旨在提供一个…...

【人工智能】掌握图像风格迁移:使用Python实现艺术风格的自动化迁移

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 图像风格迁移(Image Style Transfer)是一种基于深度学习的计算机视觉技术,通过将一张图像的内容与另一张图像的艺术风格结合,生成一幅具…...

# C指针地址CUP寄存器访问IO内存映射

C指针地址&CUP寄存器访问&IO内存映射 在裸机编程中&#xff0c;C语言可以像汇编语言一样直接操作芯片寄存器地址进行读取和写入&#xff0c;主要是由于以下几个原因&#xff1a; 1. 裸机环境下没有操作系统的干预 裸机编程是指直接在硬件上运行程序&#xff0c;没有…...

UE5 蓝图学习计划 - Day 14:搭建基础游戏场景

在上一节中&#xff0c;我们 确定了游戏类型&#xff0c;并完成了 项目搭建、角色蓝图的基础设置&#xff08;移动&#xff09;。今天&#xff0c;我们将进一步完善 游戏场景&#xff0c;搭建 地形、墙壁、机关、触发器 等基础元素&#xff0c;并添加角色跳跃功能&#xff0c;为…...

浅尝yolo11全程记录1-准备环境+官网模型推理(个人备份)

准备工作&#xff08;虚拟环境、导入项目&#xff09; 安装Anaconda 主要是为了创建和管理虚拟环境&#xff0c;在pycharm里按照项目里的requirments.txt安装依赖的时候&#xff0c;使用虚拟环境会好很多&#xff08;我记得不用Anaconda也可以直接在pycharm的terminal里头创建…...

用 Python 给 Excel 表格截图(20250207)

我搜索了网络上的方案&#xff0c;感觉把 Excel 表格转换为 HTML 再用 platwright 截图是比较顺畅的路径&#xff0c;因为有顺畅的工具链。如果使用的是 Windows 系统则不需要阅读此文&#xff0c;因为 win32com 库更方便。这篇文章中 Excel 转 HTML 的方案&#xff0c;主要弥补…...

Office/WPS接入DS等多个AI工具,开启办公新模式!

在现代职场中&#xff0c;Office办公套件已成为工作和学习的必备工具&#xff0c;其功能强大但复杂&#xff0c;熟练掌握需要系统的学习。为了简化操作&#xff0c;使每个人都能轻松使用各种功能&#xff0c;市场上涌现出各类办公插件。这些插件不仅提升了用户体验&#xff0c;…...

智能化转型2.0:从“工具应用”到“价值重构”

过去几年&#xff0c;“智能化”从一个模糊的概念逐渐成为企业发展的核心议题。2024年&#xff0c;随着生成式AI、大模型、智能体等技术的爆发式落地&#xff0c;中国企业正式迈入智能化转型的2.0时代。这一阶段的核心特征是从单一场景的“工具应用”转向全链条的“价值重构”&…...

深度整理总结MySQL——索引工作原理

B树索引数据结构 前言什么样的索引数据结构是好的搜索速度要求支持范围查找寻求适合查找的算法寻求合适的数据结构二叉查找树自平衡二叉树B树B树数据结构B与B树比较 总结 前言 相信你在面试时&#xff0c;通常会被问到“什么是索引&#xff1f;”而你一定要能脱口而出&#xf…...