Maven 项目管理工具
目录
Maven简介
Maven快速上手
Maven详细介绍
Maven工作机制
Maven安装及配置
使用IDEA创建Maven Web工程
Maven简介
Maven是 Apache 开源组织奉献的一个开源项目,可以翻译为“专家”或“内行”。
Maven 的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM project object model),通过简单的配置和命令就可以完成项目的构建管理和依赖管理。 使用 Maven 可以实现自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。
简要概述:我们使用Idea构建Java项目中,若是要使用Mysql数据库要导包mysql-connector-java.jar JDBC驱动或者其他封装好的包,常见方式是去官网下载JAR文件,导入项目中。采用Maven能够取消这一步骤,通过POM.xml文件进行管理依赖。
Maven官网:Maven – Welcome to Apache Maven
Maven快速上手
第一次使用Maven需要到官网下载Maven 后续不再使用这一步骤,类似JDK的下载
Maven下载
下载地址:Maven – Download Apache Maven,当前最新版本是3.9.9,选择apache-maven-3.9.9-bin.zip压缩包下载到本地。

Maven安装
只需要将Maven解压到非中文、没有空格的目录。比如解压到D盘,那么Maven安装目录就是D:\apache-maven-3.9.9

IDEA集成Maven
- 通过File-->Settings-->Build,Execution,Deployment-->Build Tools-->Maven可以配置当前工程的Maven。
- 通过File-->New Projects Setup-->Settings for New Projects-->Build,Execution,Deployment-->Build Tools-->Maven可以为后面新创建的所有工程自动配置Maven。

IDEA中创建Maven工程
通过File-->New-->Project-->Maven Archetype可以使用“mvnarchetype:generate”命令创建Maven工程。
- 输入工程名称,选择工程在电脑中的存放位置以及JDK版本。
- 选择Archetype工程原型(架构),不同的架构创建的工程结构是不同的。
- 选择apache.maven.archetypes:maven-archetype-quickstart,可以创建Java工程。
- 选择org.apache.maven.archetypes:maven-archetype-webapp,可以创建Web工程。
- 输入Maven工程的GAV三坐标。
- GroupId:公司或组织名,一般使用倒序的域名,如com.taobao或者com.cg。
- ArtifactId:一个项目或者是项目中的一个模块名称,默认和工程名称相同。

pom.xml文件内容解读
最基本的内容包含
一、xml文件声明
<?xml version="1.0" encoding="UTF-8"?>二、根元素
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">三、子元素
<modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>mybatis</artifactId><version>0.0.1-SNAPSHOT</version><!--添加依赖GAV三坐标 具体的可以让AI帮你添加-->
<!--常用依赖:mybatis、spring boot、junit、mysql、-->
<dependencies>
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.4.0</version>
</dependency>
</dependencies></project>
详细说明POM.XML文档
<?xml version="1.0" encoding="UTF-8"?>
<!--XML文档声明-->
<!--拓展知识:XML文件 可扩展标记语言-->
<!--被设计用来存储和传输数据。XML文件的结构非常灵活,可以自定义标签来描述数据。它被广泛应用于数据交换、配置文件、文档存储等领域。--><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--根元素-->
<!--<project></project>标签,-->
<!--作用:将该文档内所有的文件都包含其中-->
<!--XML 命名空间和 Schema 位置:
xmlns="http:...":这个属性定义了 XML 文档的默认命名空间,指向 Maven 的 POM 4.0.0 规范。这告诉 Maven 这个 pom.xml 文件遵循哪个版本的项目对象模型规范。
xmlns:xsi="http:...":这个属性定义了 XML Schema 实例的命名空间,它用于提供对 XML Schema 的引用,以验证 XML 文档的结构。
xsi:schemaLocation="http:..":这个属性提供了 XML Schema 的位置,Maven 使用这个位置来验证 pom.xml 文件的结构是否正确。如果 Maven 无法访问这个 Schema,可能是因为网络问题或者链接不正确。--><modelVersion>4.0.0</modelVersion>
<!--子元素-->
<!--<modelVersion> 元素是必需的,并且必须位于文件的顶部,作为根 <project> 元素的直接子元素。--><groupId>org.example</groupId><artifactId>mybatis</artifactId><version>0.0.1-SNAPSHOT</version>
<!--这三个标签不可省略,用于确定Maven项目的唯一标识,分别代表:-->
<!--<groupId> 通常,这个值遵循 Java 包命名约定,是反向的域名格式。如果一个组织的域名是 example.com,那么它的 groupId 可能是 com.example。-->
<!--<artifactId> 与 groupId 结合使用,以确保在 Maven 仓库中的唯一性。这个值通常反映了项目或构件的名称。-->
<!--<version> 版本号通常遵循语义化版本控制(Semantic Versioning)格式,包括主版本号、次版本号、修订号,可能还包括预发布版本标识。--><name>mybatis_2.0</name><description>mybatis_2.0</description><url>http://maven.apache.org</url>
<!--可省,代表-->
<!--<name> 元素定义了项目的名称。-->
<!--<description> 元素提供了项目的详细描述。-->
<!--<url> 元素的值可以是任何有效的URL:-->
<!--
项目主页的地址
项目的源代码仓库(如GitHub、GitLab或Bitbucket)
项目的文档网站
项目的开发者论坛或邮件列表
项目的bug跟踪系统
--><dependencies><!--MyBatis框架依赖--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.16</version></dependency><!--MySQL驱动依赖--><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.4.0</version></dependency></dependencies>
<!--依赖的GAV三坐标 dependencies 嵌套 dependency--></project>
其他标签
父类POM
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.4</version><relativePath/> <!-- lookup parent from repository -->
</parent>
属性 java.version的版本号
<properties><java.version>17</java.version>
</properties>
定义项目构建过程
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>
Maven详细介绍
Maven工作机制
首先,我们需要在电脑中安装Maven(Maven核心程序),Maven中提供了很多Maven命令来完成项目的构建管理。我们需要使用Maven命令创建Maven工程,在Maven工程中有一个pom.xml文件,pom.xml是Maven工程的核心配置文件,通过该配置文件我们可以完成Jar包依赖、项目构建等的配置。
比如,我们需要在工程中使用MySQL驱动的Jar包,我们只需要在pom.xml中完成添加如下依赖配置:
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.4.0</version>
</dependency>
groupId(组ID)、artifactId(工件ID)和version(版本)是Jar包依赖的GAV三坐标,GAV三坐标就相当于人的姓+名,起到一个标识的作用。Maven工程在构建的过程中,会依据pom.xml中的GAV三坐标首先从本地仓库中下载jar包添加到工程中,如果本地仓库没有,那么会自动默认去中央仓库(Central Repository:)下载Jar包到本地仓库中,然后添加到工程中。中央仓库中几乎存放了所有的第三方Jar包依赖。通过地址https://mvnrepository.com/可以查询所有Jar包版本的GAV三坐标。
但是中央仓库是部署在国外的,访问速度较慢并且不稳定,因此我们配置使用阿里云镜像仓库(https://maven.aliyun.com/repository/central),速度更快更稳定。

Maven安装及配置
【任务】:完成电脑中Maven的下载、安装和配置。
Maven下载
下载地址:Maven – Download Apache Maven,当前最新版本是3.9.9,选择apache-maven-3.9.9-bin.zip压缩包下载到本地。

Maven安装
只需要将Maven解压到非中文、没有空格的目录。比如解压到D盘,那么Maven安装目录就是D:\apache-maven-3.9.9

Maven配置
找到Maven安装目录下的conf/settings.xml配置文件并进行编辑。

- 配置本地仓库
在<settings>节点下加入<localRepository>节点配置本地仓库位置(默认的本地仓库地址为${user.home}/.m2/repository)。

<!--配置本地仓库位置-->
<localRepository>D:\maven\repository</localRepository>
- 配置阿里云远程仓库
在<mirrors>节点下加入<mirror>节点配置阿里云远程仓库镜像地址。

<!--配置阿里云远程镜像仓库--><mirror><id>alimaven</id><mirrorOf>central</mirrorOf><name>aliyun maven</name><url>https://maven.aliyun.com/repository/central</url></mirror>
- 配置JDK版本
由于Maven软件是使用java语言编写的程序,其运行需要JDK环境支持,因此在安装Maven环境之前一定要安装JDK(建议JDK17版本,如果电脑中未安装,JDK17安装与配置参考安装JDK17并配置Java环境变量_jdk17配置环境变量-CSDN博客)。
Maven默认运行JDK版本是1.4,显然不能满足我们的需求,我们需要在Maven配置文件中设置JDK版本。
在Maven配置文件中,找到<profiles>标签,加入<profile>标签,具体指定配置id、JDK版本和编译配置。同时加入<activeProfiles>标签,加入<activeProfile>标签,指定配置id激活配置。
<profiles><!-- 配置JDK17版本 --><profile><id>jdk-17</id><activation><activeByDefault>true</activeByDefault><jdk>17</jdk></activation><properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target><maven.compiler.compilerVersion>17</maven.compiler.compilerVersion> </properties></profile></profiles><!-- 激活jdk配置 --><activeProfiles><activeProfile>jdk-17</activeProfile></activeProfiles>
- 环境变量配置
(1)配置MAVEN_HOME

(2)编辑Path,添加一行配置“%MAVEN_HOME%\bin”

Maven命令
Maven配置完成后,就可以使用Maven命令进行项目构建和依赖管理了。
| 命令 | 作用 | 说明 |
| mvn -v | 查看Maven当前版本信息 | 使用mvn –v或mvn –version命令,执行后的结果一样。 |
| mvnarchetype:generate | 创建Maven项目 | 执行命令后,提示输入Maven坐标等信息。 |
| mvn clean | 删除target目录 | target目录是Maven的输出目录,主要存放生成的class、jar、war等文件。 |
| mvn compile | 编译程序 | 编译后的文件将存放在taget/classes目录中。 |
| mvn test-complie | 编译测试程序 | 编译的测试文件将存放在target/test-classes目录中。 |
| mvn test | 执行程序测试 | 测试报告将存放在target/surefire-reports目录中。 |
| mvn package | 打包项目 | 打包后的结果(jar或war包)将存放在target目录中。 |
| mvn install | 安装jar包到本地仓库 | 将打包好的jar包存放到Maven本地仓库中。 |
打开cmd命令行窗口,输入命令mvn-v,可以查看当前配置的Maven版本号。

其他的命令我们通过IDEA集成Maven进行使用。
IDEA集成Maven进行项目构建
【任务】使用IDEA集成Maven,并使用Maven命令完成工程的创建、编译、清理和打包。
IDEA集成Maven
- 通过File-->Settings-->Build,Execution,Deployment-->Build Tools-->Maven可以配置当前工程的Maven。
- 通过File-->New Projects Setup-->Settings for New Projects-->Build,Execution,Deployment-->Build Tools-->Maven可以为后面新创建的所有工程自动配置Maven。

创建Maven工程
通过File-->New-->Project-->Maven Archetype可以使用“mvnarchetype:generate”命令创建Maven工程。
- 输入工程名称,选择工程在电脑中的存放位置以及JDK版本。
- 选择Archetype工程原型(架构),不同的架构创建的工程结构是不同的。
- 选择apache.maven.archetypes:maven-archetype-quickstart,可以创建Java工程。
- 选择org.apache.maven.archetypes:maven-archetype-webapp,可以创建Web工程。
- 输入Maven工程的GAV三坐标。
- GroupId:公司或组织名,一般使用倒序的域名,如com.taobao或者com.cg。
- ArtifactId:一个项目或者是项目中的一个模块名称,默认和工程名称相同。
- Version:版本号,默认为1.0-SNAPSHOT。

- 点击Create创建按钮创建Maven工程。
Maven工程结构
创建好的Maven工程如下所示:
- src/main/java:源代码目录,存放开发者编写的实现系统功能的源代码。
- src/test/java:测试代码目录,存放对源代码进行测试的测试脚本。
- pom.xml:Maven核心配置文件,进行GAV坐标配置、Jar包依赖配置、项目构建配置等。
- External Libraries:依赖的外部组件库,比如JDK,依赖的第三方的Jar包等。

- pom.xml文件内容解读
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!--配置工程的GAV三坐标--><groupId>com.cg</groupId><artifactId>maven-project-java</artifactId><version>1.0-SNAPSHOT</version><!--配置打包方式,java工程打成jar包,web工程打成war包--><packaging>jar</packaging><name>maven-project-java</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!--配置Jar包依赖--><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies>
</project>
添加Jar包依赖
比如,我们在工程中添加MySQL驱动依赖,需要在pom.xml文件中,添加mysql-connector-sql依赖配置。
<dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.4.0</version>
</dependency>
依赖添加后,一定要记得刷新Maven仓库,才能从本地仓库或者远程仓库中下载Jar包添加到工程外部资源库中。


工程编译、清理、打包和安装
可以通过Maven操作面板执行Maven命令完成Maven工程的编译、清理和打包操作。

- compile:编译命令,自动生成target目录,target目录是Maven工程的输出目录,它包含了编译、测试、打包等构建过程生成的所有文件。
- clean:清理命令,删除target目录。
- package:打包命令,将打包后的结果(jar或war包)存放在target目录中。
- install:安装命令, 将打包后的jar包上传到maven本地仓库。
在Maven工程中进行单元测试
单元测试
单元测试:是指对软件中的最小可测试单元进行检查和验证。至于“单元”的大小或范围,并没有一个明确的标准,“单元”可以是一个函数、方法、类、功能模块或者子系统。
单元测试属于白盒测试范畴,一般由开发人员进行来做,便于及时发现代码bug,保证代码质量。
JUnit单元测试框架由Erich Gamma和Kent Beck编写的一个回归测试框架(Regresion Testing Framework),主要用于Java语言程序的单元测试。
目前最新版本为JUnit5,其官网地址是 https://junit.org/。
JUnit5简单使用
- 在Maven工程中,添加JUnit5框架依赖。
在pom.xml文件中,添加JUnit5的Maven坐标信息。其中,scope表示依赖作用的范围,依赖作用的范围可以分为编译阶段、测试阶段和运行阶段。scope的值为test表示该依赖只在测试阶段可用,也就是在src/test文件夹下可用;scope的默认值是compile表示该依赖在编译、测试和运行阶段都可用。具体内容如下:
<!-- JUnit5的Maven坐标 -->
<dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter-api</artifactId><version>5.10.2</version><scope>test</scope>
</dependency>
- 在工程中编写JUnit测试方法
JUnit为我们提供了一个@Test注解,用来指定当前方法将作为测试用例方法使用,该方法可以直接运行。
- @Test注解标识该方法是一个测试方法,可以执行
- @Test注解的方法必须是public,void,非静态,不带参数。
在IDEA的src/main/test/java目录下添加测试类,在测试类中定义一个测试方法,方法上使用@Test注解,方法体中编写测试内容脚本。具体内容如下:
public class AppTest {@Testpublic void test1(){//编写测试脚本System.out.println("执行测试脚本");}
}
- 运行测试方法,执行测试脚本
单击方法前面的运行按钮,运行测试方法


使用IDEA创建Maven Web工程
【任务】使用IDEA创建Maven Web工程,在工程中新建Servlet处理HTTP请求,并将工程发布到Tomcat中运行。
创建Maven Web工程
通过File-->New-->Project-->Maven Archetype创建Maven Web工程。
- 输入工程名称,选择工程在电脑中的存放位置以及JDK版本。
- 选择org.apache.maven.archetypes:maven-archetype-webapp,可以创建Web工程。
- 输入Maven工程的GAV三坐标。

- 点击Create创建按钮创建Maven工程。
Maven Web工程结构
- src/main/java目录:源代码目录,java目录需要手动新建
- src/main/resources目录:配置目录,该目录用来存放应用的一些配置信息
- src/main/webapp目录:Web应用资源目录,可以将jsp/html页面,js脚本,css样式等资源放在该目录中。
- src/main/WEB-INF目录:Web应用的安全目录,包含一个web.xml文件

添加servlet-api依赖
在Web工程中创建Servlet需要servlet-api依赖的支持,因此需要首先在pom.xml中添加servlet-api依赖信息。
<dependency><groupId>jakarta.servlet</groupId><artifactId>jakarta.servlet-api</artifactId><version>6.1.0</version><scope>provided</scope>
</dependency>
scope表示依赖作用的范围,依赖作用的范围可以分为编译阶段、测试阶段和运行阶段。scope的值为provided表示该依赖只在编译和测试阶段可用,在运行阶段不可用,因为servlet-api在运行时由tomcat容器提供,就不需要再重复引入,可以防止和tomcat下jar冲突。
注:Tomcat10已经全面支持JakartaEE,取代了JavaEE,Jakarta EE是Java EE的继任者。
2018年,Oracle(甲骨文)决定将JavaEE移交给开源组织Eclipse基金会,但甲骨文不允许开源组织用Java的名号,于是Eclipse使用 "Jakarta EE"这个名字。Jakarta EE中,所有的包名都是以jakarta开头。
在工程中创建Servlet
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.getWriter().println("Hello,Maven Web");}
}
将工程部署到Tomcat运行并访问Servlet
在IDEA中配置Tomcat,并将工程部署到Tomcat中,并设置应用上下文路径为“/”,启动Tomcat


在浏览器中输入Servlet的访问地址:http://localhost:8080/hello

相关文章:
Maven 项目管理工具
目录 Maven简介 Maven快速上手 Maven详细介绍 Maven工作机制 Maven安装及配置 使用IDEA创建Maven Web工程 Maven简介 Maven是 Apache 开源组织奉献的一个开源项目,可以翻译为“专家”或“内行”。 Maven 的本质是一个项目管理工具,将项目开发和管…...
ubuntu开机启动jar
要在Ubuntu系统上开机启动一个jar文件,你可以创建一个systemd服务单元。以下是创建服务并设置开机启动的步骤: 创建一个新的systemd服务文件。 打开一个新的服务文件,例如/etc/systemd/system/your-service.service,使用你喜欢的…...
【目标检测02】非极大值抑制 NMS
文章目录 1. 前言2. 原理3. 代码实现 1. 前言 在检测图像中的目标时,一个目标可能会被预测出多个矩形框,而实际上我们只需要一个,如何消除冗余的边界框呢?一种方简单的方案是提升置信度的阈值,过滤掉低置信度的边界框…...
104协议调试工具
在学习104协议过程中,通过直接阅读协议的学习方式会略有枯燥,这里把常用的104调试、测试工具介绍给大家,以便快速的进行模拟通信来更好的了解、学习104协议。 通信协议分析及仿真软件是非常重要的测试工具,该软件支持 101,104,mo…...
日常记录:es TransportClient添加证书处理
背景 最近在搞es登录,不知道是不是低版本问题(6.8.12),开启登录之后springboot连接es,es一直报Caused by: io.netty.handler.ssl.NotSslRecordException: not an SSL/TLS record: 45530000002c000000000000009108004d3…...
apply call bind 简介
Function.prototype.call(thisArg [, arg1, arg2, …]) call() 简述 call() 方法 调用一个函数, 其具有一个指定的 this 值和分别地提供的参数(参数的列表)。当第一个参数为 null、undefined 的时候, 默认 this 上下文指向window。 call() 简单实例 const name …...
数据结构 单调栈
应用情景 求当前元素 前面/后面,第一个比它 小/大 的元素的 值/下标/下标距离 优点 剔除重复寻路操作,将暴力 O(n^2) 优化到 O(n) 性质 从栈底开始,元素 单调递增/单调递减 单调性视具体情景而定 (找较大值还是较小值、找的方向) 思路…...
【NodeJS】NodeJS+mongoDB在线版开发简单RestfulAPI (七):MongoDB的设置
本项目旨在学习如何快速使用 nodejs 开发后端api,并为以后开展其他项目的开启提供简易的后端模版。(非后端工程师) 由于文档是代码写完之后,为了记录项目中需要注意的技术点,因此文档的叙述方式并非开发顺序࿰…...
基于flask和neo4j的医疗知识图谱展示问答系统
如果你仍在为毕业设计的选题发愁,或者想通过技术项目提升专业实力,这个基于Flask和Neo4j的医疗知识图谱展示与问答系统,绝对是个不错的选择! 项目亮点大揭秘: 知识图谱与问答结合:我们采用了医疗场景下的知…...
Python——脚本实现datax全量同步mysql到hive
文章目录 前言一、展示脚本二、使用准备1、安装python环境2、安装EPEL3、安装脚本执行需要的第三方模块 三、脚本使用方法1、配置脚本2、创建.py文件3、执行脚本4、测试生成json文件是否可用 前言 在我们构建离线数仓时或者迁移数据时,通常选用sqoop和datax等工具进…...
Python爬虫教程:从入门到精通
Python爬虫教程:从入门到精通 前言 在信息爆炸的时代,数据是最宝贵的资源之一。Python作为一种简洁而强大的编程语言,因其丰富的库和框架,成为了数据爬取的首选工具。本文将带您深入了解Python爬虫的基本概念、实用技巧以及应用…...
pytorh学习笔记——cifar10(四)用VGG训练
1、新建train.py,执行脚本训练模型: import os import timeimport torch import torch.nn as nn import torchvisionfrom vggNet import VGGbase, VGGNet from load_cifar import train_loader, test_loader import warnings import tensorboardX# 忽略…...
CRLF、UTF-8这些编辑器右下角的选项的意思
经常使用编辑器的小伙伴应该经常能看到右下角会有这么两个选项,下图是VScode中的示例,那么这两个到底是啥作用呢? 目录 字符编码ASCII 字符集GBK 字符集Unicode 字符集UTF-8 编码 换行 字符编码 此部分参考博文 在计算机中,所有…...
【C++干货篇】——类和对象的魅力(四)
【C干货篇】——类和对象的魅力(四) 1.取地址运算符的重载 1.1const 成员函数 将const修饰的成员函数称之为const成员函数,const修饰成员函数放到成员函数参数列表的后面。const实际修饰该成员函数隐含的this指针(this指向的对…...
基于java的诊所管理系统源码,SaaS门诊信息系统,二次开发的不二选择
门诊管理系统源码,诊所系统源码,saas服务模式 医疗信息化的新时代已经到来,诊所管理系统作为诊所管理和运营的核心工具,不仅提升了医疗服务的质量和效率,也为患者提供了更加便捷和舒适的就医体验,同时还推动…...
O2OA如何实现文件跨服务器的备份
O2OA可以外接存储服务器,但是一个存储服务器上怕磁盘损坏等问题导致文件丢失,所以需要实现文件跨服务器备份。 整体过程: 1、SSH免密登录配置 2、增加一个同步推送文件的.sh文件 3、编辑crontab 增加定时任务执行上一步的.sh文件 一、配…...
语音提示器-WT3000A离在线TTS方案-打破语种限制/AI对话多功能支持
前言: TTS(Text To Speech )技术作为智能语音领域的重要组成部分,能够将文本信息转化为逼真的语音输出,为各类硬件设备提供便捷的语音提示服务。本方案正是基于唯创知音的离在线TTS(离线本地音乐播放与在线…...
使用HAL库的STM32工程,实现DMA传输USART发送接收数据
以串口3为例,初始化部分为STM32CubeMX生成代码 串口初始化 UART_HandleTypeDef huart3; DMA_HandleTypeDef hdma_usart3_rx; DMA_HandleTypeDef hdma_usart3_tx;/* USART3 init function */ void MX_USART3_UART_Init(void) {/* USER CODE BEGIN USART3_Init 0 */…...
常用排序算法总结
内容目录 1. 选择类排序 1.1 直接选择排序1.2 堆排序 2. 交换类排序 2.1 冒泡排序2.2 快速排序 3. 插入类排序 3.1 直接插入排序3.2 希尔排序 4. 其它排序 4.1 归并排序4.2 基数排序/桶排序 排序 1. 选择类排序 选择类排序的特征是每次从待排序集合中选择出一个最大值或者最…...
[项目详解][boost搜索引擎#2] 建立index | 安装分词工具cppjieba | 实现倒排索引
目录 编写建立索引的模块 Index 1. 设计节点 2.基本结构 3.(难点) 构建索引 1. 构建正排索引(BuildForwardIndex) 2.❗构建倒排索引 3.1 cppjieba分词工具的安装和使用 3.2 引入cppjieba到项目中 倒排索引代码 本篇文章,我们将继续项…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
2025-05-08-deepseek本地化部署
title: 2025-05-08-deepseek 本地化部署 tags: 深度学习 程序开发 2025-05-08-deepseek 本地化部署 参考博客 本地部署 DeepSeek:小白也能轻松搞定! 如何给本地部署的 DeepSeek 投喂数据,让他更懂你 [实验目的]:理解系统架构与原…...
