学会使用maven工具看这一篇文章就够了
文章目录
- 概述
- 一、定义与功能
- 二、核心组件
- 三、主要作用
- 四、仓库管理
- settings.xml说明
- 一、文件位置与优先级
- 二、主要配置元素
- 三、配置示例
- pom.xml文件说明
- 一、pom.xml的基本结构
- 二、pom.xml的主要元素及其说明
- 三、依赖管理
- 四、常用插件
- 五、其他配置
- maven安装配置
- 一、下载Maven
- 二、解压Maven
- 三、配置环境变量
- 四、验证安装
- 五、配置Maven的settings.xml文件(可选)
- maven相关命令行
- 一、基本命令
- 二、构建项目
- 三、高级选项
- 四、其他选项
概述
Maven是一个功能全面且易于使用的项目管理工具,它主要用于Java项目的构建和管理。以下是对Maven的详细介绍:
一、定义与功能
Maven是一个包含项目对象模型(POM,Project Object Model)、一组标准集合、项目生命周期、依赖管理系统以及用于运行定义在生命周期阶段中插件目标的逻辑的项目管理工具。它能够帮助开发人员更有效地管理项目、减少错误、提高代码质量和可维护性。
二、核心组件
- POM(Project Object Model):POM是Maven项目的核心,它是一个XML文件(pom.xml),包含了项目的基本信息、依赖关系、插件配置、构建路径等。通过POM,Maven能够了解项目的结构和需求,并据此进行构建和管理。
- 依赖管理系统:Maven通过POM文件来管理项目的依赖关系。开发人员只需要在POM文件中指定所需的依赖,Maven就能自动下载并导入这些依赖,从而避免了手动管理依赖的繁琐和出错的可能性。
- 项目生命周期:Maven将项目的构建过程分为多个阶段,如编译、测试、打包、部署等。每个阶段都有相应的插件和目标来执行特定的任务。通过Maven的生命周期管理,开发人员可以轻松地控制项目的构建过程。
三、主要作用
- 项目管理和构建:Maven提供了一个清晰的项目结构,使用约定俗成的目录布局,有助于开发人员对项目结构有明确的认识,更容易理解和维护代码。
- 依赖管理:通过POM文件来管理项目的依赖关系,大大减少了出错的可能性。
- 自动化构建:Maven提供了一些默认的构建生命周期和插件,以帮助开发人员自动化构建和测试过程。通过简单的命令行操作,就可以完成项目的编译、测试、打包和部署等任务。
- 代码质量保证:Maven可以与一些插件一起使用,生成单元测试报告等,帮助开发人员了解代码的质量,并提供改进的建议。
- 项目文档生成:Maven可以生成项目的文档,包括API文档、项目报告等,有助于开发人员更好地理解项目的结构和实现。
- 统一构建环境:Maven能够提供一个统一的构建环境,使得不同的开发人员可以在相同的配置下进行开发和构建。
- 多模块项目管理:Maven支持多模块项目的构建和管理,可以将多个相关的项目组织成一个项目,方便统一管理和构建。
- 插件扩展性:Maven有丰富的插件生态系统,开发人员可以通过自定义插件来扩展Maven的功能,满足项目的特定需求。
四、仓库管理
Maven仓库是Maven原理的重要一部分,它分为本地仓库和远程仓库。本地仓库用于缓存从远程仓库下载的依赖和插件,而远程仓库则包括中央仓库、私有仓库和镜像仓库等。Maven默认会从中央仓库下载依赖,但也可以通过配置使用其他远程仓库来加速下载过程。
综上所述,Maven是一个功能强大且易于使用的项目管理工具,它能够帮助开发人员更有效地管理Java项目、提高代码质量和可维护性。通过使用Maven,开发人员可以更加专注于业务逻辑的实现,而无需花费大量时间和精力在项目的构建和管理上。
settings.xml说明
settings.xml
是Maven的核心配置文件之一,它用于自定义用户级别的构建环境设置。以下是关于settings.xml
配置的详细展开:
一、文件位置与优先级
settings.xml
文件一般存在于两个位置:
- 全局配置:位于Maven安装目录下的
conf/settings.xml
。这个文件为同一台计算机上的所有Maven用户共享。 - 用户配置:位于用户目录下的
.m2/settings.xml
(在Windows系统中,通常是C:\Users\用户名\.m2\settings.xml
;在Linux或Mac系统中,通常是/home/用户名/.m2/settings.xml
)。这个文件仅对当前用户有效。
在应用配置时,如果这两个文件同时存在,会合并它们的内容。如果有重复的配置,优先级高的配置会覆盖优先级低的。通常,用户配置的优先级高于全局配置。
二、主要配置元素
settings.xml
文件包含多个顶级元素,每个元素都有其特定的作用。以下是一些常用的配置元素及其详细说明:
-
<localRepository>
:用于指定Maven本地仓库的路径。Maven在构建项目时,会从本地仓库中查找和存储项目依赖。默认情况下,本地仓库的路径是用户目录下的.m2/repository
。通过配置<localRepository>
元素,可以自定义本地仓库的路径。<localRepository>/path/to/local/repo</localRepository>
-
<interactiveMode>
:用于控制Maven的交互模式。当设置为true
时,Maven在执行构建过程时会显示进度条并等待用户的输入。当设置为false
时,Maven会立即开始构建过程,不会显示进度条也不会等待用户输入。默认情况下,该元素的值是true
。<interactiveMode>false</interactiveMode>
-
<offline>
:用于控制Maven是否在离线模式下工作。当设置为true
时,Maven只会从本地仓库中查找和使用依赖,不会从远程仓库下载依赖。这在网络不稳定或没有网络连接时非常有用。默认情况下,该元素的值是false
,即Maven使用在线模式。<offline>true</offline>
-
<pluginGroups>
:用于定义Maven插件搜索的组。Maven会根据<pluginGroups>
元素中定义的组来搜索和加载相关的插件。这有助于简化插件的使用,因为用户不需要在每次使用插件时都指定其完整的groupId
。<pluginGroups><pluginGroup>com.example.plugins</pluginGroup> </pluginGroups>
-
<proxies>
:用于配置Maven的代理设置。通过代理设置,Maven可以通过代理服务器访问互联网,这对于在某些网络环境下构建项目非常有用。<proxies>
元素包含多个<proxy>
元素,每个<proxy>
元素都指定了一个代理服务器的详细信息,如代理服务器的ID、协议、主机名、端口号、用户名、密码等。 -
<servers>
:用于定义远程仓库的服务器信息。这些远程仓库可以是中央仓库或者是团队内部的私有仓库。Maven在进行构建时,会从这些远程仓库中查找和下载项目依赖。有些远程仓库下载依赖时是需要安全认证的,这些安全认证的信息就是在<server>
元素中设置的。<server>
元素包含远程仓库的ID、URL地址、用户名、密码等信息。 -
<mirrors>
:用于配置Maven镜像。镜像是一种替代远程仓库的机制,它可以加速依赖的下载过程,或者解决无法访问某些远程仓库的问题。<mirrors>
元素包含多个<mirror>
元素,每个<mirror>
元素都定义了一个镜像服务器的配置信息,如镜像的ID、名称、URL地址、要替代的远程仓库ID等。
三、配置示例
以下是一个settings.xml
文件的配置示例,它展示了如何设置本地仓库路径、配置代理服务器和定义远程仓库的服务器信息:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0http://maven.apache.org/xsd/settings-1.0.0.xsd"><!-- 本地仓库路径 --><localRepository>/path/to/local/repo</localRepository><!-- 代理设置 --><proxies><proxy><id>proxy-name</id><active>true</active><protocol>http</protocol><host>proxyhost</host><port>8080</port><username>proxyuser</username><password>proxypassword</password><nonProxyHosts>localhost|*.example.com</nonProxyHosts></proxy></proxies><!-- 远程仓库服务器信息 --><servers><server><id>server_id</id><username>auth_username</username><password>auth_pwd</password><privateKey>/path/to/private_key</privateKey><passphrase>some_passphrase</passphrase><filePermissions>664</filePermissions><directoryPermissions>775</directoryPermissions><configuration></configuration></server></servers><!-- 镜像配置 --><mirrors><mirror><id>central</id><name>central</name><url>file:///path/to/local/maven-repository</url><mirrorOf>*</mirrorOf></mirror></mirrors></settings>
在这个配置示例中,本地仓库的路径被设置为/path/to/local/repo
,代理服务器的详细信息被配置在<proxies>
元素中,远程仓库的服务器信息被配置在<servers>
元素中,而镜像配置则被配置在<mirrors>
元素中。
通过合理配置settings.xml
文件,可以大大提高Maven的使用效率和项目的构建速度。
pom.xml文件说明
pom.xml(Project Object Model的缩写)是Maven项目的核心配置文件,它定义了项目的各种属性和依赖关系,用于管理项目的依赖、插件、构建配置等。以下是pom.xml配置的详细说明:
一、pom.xml的基本结构
pom.xml文件通常以<project>
作为根元素,其下包含多个子元素来配置项目的不同方面。以下是一个简单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><!-- 项目的基本信息 --><groupId>com.example</groupId><artifactId>example-proj</artifactId><version>1.0.0</version><name>Example Project</name><description>This is an example Maven project.</description><url>http://www.example.com/</url><!-- 许可证和开发者信息 --><licenses><license><name>The Apache Software License, Version 2.0</name><url>http://www.apache.org/licenses/LICENSE-2.0.txt</url><distribution>repo</distribution></license></licenses><developers><developer><id>developer1</id><name>Developer One</name><email>developer1@example.com</email><!-- 其他开发者信息 --></developer></developers><!-- 依赖项 --><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!-- 其他依赖项 --></dependencies><!-- 构建配置 --><build><plugins><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin><!-- 其他插件配置 --></plugins></build>
</project>
二、pom.xml的主要元素及其说明
<modelVersion>
:指定了pom.xml文件使用的XML schema版本,目前最新的版本是4.0.0。<groupId>
:项目的组名,通常是反转的域名,用于唯一标识一个项目或一组项目。<artifactId>
:项目的唯一标识符,通常是项目的名称。<version>
:项目的版本号,用于区分项目的不同版本。<packaging>
:项目的打包方式,如jar、war等,如果没有指定,默认值是jar。<name>
:项目的简短名称,可选。<description>
:项目的详细描述,可选。<url>
:项目主页的URL,可选。<licenses>
:许可证声明,可选,用于声明项目所使用的一种或多种许可证。<developers>
:开发者信息,可选,列出项目的开发人员。<dependencies>
:依赖项列表,用于声明项目所需的外部依赖。每个依赖项都包含<groupId>
、<artifactId>
和<version>
等元素。<build>
:构建配置,用于定义项目的构建过程。可以包含<plugins>
元素来配置构建过程中使用的插件。<plugins>
:插件列表,用于定义构建过程中使用的插件及其配置。<parent>
:父项目引用,用于指定当前项目的父项目。通过继承父项目,可以共享父项目的依赖管理和构建配置。<properties>
:自定义属性列表,用于定义项目中可重用的属性。可以在pom.xml的其他部分通过${propertyName}
的形式引用这些属性值。
三、依赖管理
在pom.xml中,依赖管理主要通过<dependencies>
和<dependencyManagement>
两个元素来实现。
<dependencies>
:自动引入声明在其中的所有依赖,并默认被所有的子项目继承。如果项目中不写依赖项,则会从父项目继承声明在父项目<dependencies>
里的依赖项。<dependencyManagement>
:用于声明依赖,但不实现引入。子项目需要显式声明需要的依赖,如果子项目中写了该依赖项且没有指定具体版本,则会从父项目中继承该项,并且version
和scope
都读取自父pom。这样可以确保所有子项目使用的依赖项为同一版本。
四、常用插件
在pom.xml中,可以通过<plugins>
元素来配置构建过程中使用的插件。以下是一些常用插件及其配置示例:
- maven-compiler-plugin:用于编译项目的源代码。可以配置
<source>
和<target>
元素来指定Java源代码和目标字节码的版本。 - maven-jar-plugin:用于打包项目为jar文件。可以配置
<archive>
元素来指定jar文件的内容,如<manifest>
元素用于指定jar文件的清单文件。 - maven-surefire-plugin:用于执行项目的单元测试。可以配置
<includes>
和<excludes>
元素来指定要包含或排除的测试类。
五、其他配置
除了上述主要元素外,pom.xml还可以包含其他配置,如<modules>
元素用于声明当前Maven项目包含的模块子项目,<profiles>
元素用于定义自定义配置信息管理等。
综上所述,pom.xml是Maven项目的核心配置文件,通过配置该文件可以实现对项目的各种配置和管理。
maven安装配置
Maven的安装过程相对简单,但需要注意一些细节以确保安装成功。以下是Maven安装的详细步骤:
一、下载Maven
- 访问Maven官方网站(https://maven.apache.org/),在下载页面选择适合您操作系统的Maven二进制压缩包。
- 对于Windows系统,可以选择
apache-maven-{version}-bin.zip
格式的压缩包;对于Linux系统,可以选择apache-maven-{version}-bin.tar.gz
格式的压缩包,其中{version}
为Maven的版本号。
二、解压Maven
- 将下载的Maven压缩包解压到您选择的目录。
- 对于Windows系统,可以使用解压软件(如WinRAR、7-Zip等)将压缩包解压到指定目录,例如
C:\Program Files\apache-maven-{version}
。 - 对于Linux系统,可以使用
tar
命令进行解压,例如:tar -zxvf apache-maven-{version}-bin.tar.gz -C /opt/
,这将Maven解压到/opt/
目录下。
- 对于Windows系统,可以使用解压软件(如WinRAR、7-Zip等)将压缩包解压到指定目录,例如
三、配置环境变量
-
Windows系统:
- 右键点击“此电脑”,选择“属性”。
- 在弹出的窗口中,点击“高级系统设置”。
- 在“系统属性”窗口的“高级”选项卡下,点击“环境变量”。
- 在“系统变量”区域中,点击“新建”按钮,创建名为
MAVEN_HOME
的变量,变量值为Maven解压后的目录路径,例如C:\Program Files\apache-maven-{version}
。 - 找到
Path
变量,点击“编辑”按钮。 - 在变量值的末尾添加Maven的
bin
目录路径,例如;C:\Program Files\apache-maven-{version}\bin
。
-
Linux系统:
- 打开终端,编辑
~/.bashrc
或~/.bash_profile
文件(取决于您使用的shell类型)。 - 在文件末尾添加以下内容:
export MAVEN_HOME=/opt/apache-maven-{version} export PATH=$PATH:$MAVEN_HOME/bin
。 - 保存文件后,在终端中运行
source ~/.bashrc
或source ~/.bash_profile
使配置生效。
- 打开终端,编辑
-
Intel Idea:
- File>Settings>Maven
- File>Settings>Maven
四、验证安装
- 打开命令行窗口(Windows系统为
cmd
,Linux系统为终端)。 - 输入
mvn -v
(注意中间有空格)并回车。 - 如果看到Maven的版本信息以及相关的Java版本信息,说明Maven安装成功。
五、配置Maven的settings.xml文件(可选)
- 找到Maven安装目录下的
conf
文件夹中的settings.xml
文件。 - 可以根据需要修改以下配置:
- 本地仓库位置:默认情况下,Maven的本地仓库位于用户目录下的
.m2
文件夹中。如果想要更改本地仓库的位置,可以在settings.xml
文件中找到<localRepository>
标签,并修改其值为新的仓库路径。 - 镜像配置:如果需要使用国内的Maven镜像来加速依赖下载,可以在
<mirrors>
标签内添加镜像配置。例如,使用阿里云的Maven镜像可以加快下载速度。 - 代理配置:如果需要使用代理服务器才能访问互联网,可以在
<proxies>
标签内配置代理信息。
完成以上步骤后,Maven就已经成功安装并配置好了。您可以开始使用Maven来管理您的Java项目了。
- 本地仓库位置:默认情况下,Maven的本地仓库位于用户目录下的
maven相关命令行
Maven命令行提供了丰富的功能和选项,用于管理和构建Java项目。以下是对Maven命令行的详细解释:
一、基本命令
-
mvn -v 或 mvn --version
- 显示Maven的版本信息。
-
mvn -h 或 mvn --help
- 显示Maven的帮助信息,包括可用的命令和选项。
-
mvn clean
- 清除项目生成的文件,例如target目录。
-
mvn compile
- 编译项目的主源代码。
-
mvn test
- 编译并测试项目。
-
mvn package
- 将编译后的代码打包成可发布的格式,如jar、war等。
-
mvn install
- 将打包后的文件安装到本地Maven仓库中。
-
mvn deploy
- 将打包后的文件部署到远程Maven仓库中(通常用于发布版本)。
二、构建项目
-
新建项目
- Maven提供了多种方式来创建新项目,包括使用archetype插件或IDE的Maven插件。
- 例如,使用archetype插件创建普通Java项目:
mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
- 或者创建Web项目:
mvn archetype:generate -DgroupId=com.example -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
-
自定义构建
- Maven允许通过插件和自定义配置来扩展其功能。
- 例如,使用assembly插件打包项目并包含所有依赖:
mvn package assembly:single
三、高级选项
-
日志级别
-e, --errors
:产生执行错误相关消息。-X, --debug
:产生执行调试信息。-q, --quiet
:仅仅显示错误。
-
构建剖面
-P, --activate-profiles
:激活指定的构建剖面。
-
依赖管理
mvn dependency:list
:列出项目的已解析依赖。mvn dependency:tree
:以树形结构显示项目的依赖关系。mvn dependency:resolve
:解析并显示项目的依赖列表。mvn dependency:analyze
:分析项目的依赖关系,找出未使用或缺失的依赖。
-
插件更新
-npu, --no-plugin-updates
:不对任何相关的注册插件进行最新检查。-cpu, --check-plugin-updates
:强制对任何相关的注册插件进行最新检查。
-
离线模式
-o, --offline
:在离线模式下运行Maven,不联网更新依赖。
-
非递归构建
-N, --non-recursive
:仅在当前项目模块执行命令,不构建子模块。
-
指定模块
-pl, --projects
:在指定模块上执行命令。
-
失败处理
-ff, --fail-fast
:遇到构建失败就停止。-fn, --fail-never
:无论项目结果如何,构建从不失败。-fae, --fail-at-end
:仅影响构建结果,允许不受影响的构建继续。
四、其他选项
-
强制更新依赖
-U, --update-snapshots
:强制更新snapshot类型的插件或依赖库。
-
使用备用POM文件
-f, --file
:强制使用备用的POM文件。
-
指定用户配置文件
-s, --settings
:指定用户配置文件的备用路径。
-
指定全局配置文件
-gs, --global-settings
:指定全局配置文件的备用路径。
-
加密密码
-emp, --encrypt-master-password
:加密主安全密码,存储到Maven settings文件里。-ep, --encrypt-password
:加密服务器密码,存储到Maven settings文件里。
-
批处理模式
-B, --batch-mode
:在非交互(批处理)模式下运行Maven。
Maven命令行提供了丰富的功能和选项,允许用户根据需求进行自定义构建和管理。通过掌握这些命令和选项,用户可以更高效地管理和构建Java项目。
相关文章:
学会使用maven工具看这一篇文章就够了
文章目录 概述一、定义与功能二、核心组件三、主要作用四、仓库管理 settings.xml说明一、文件位置与优先级二、主要配置元素三、配置示例 pom.xml文件说明一、pom.xml的基本结构二、pom.xml的主要元素及其说明三、依赖管理四、常用插件五、其他配置 maven安装配置一、下载Mave…...
如何创建虚拟环境并实现目标检测及验证能否GPU加速
创建虚拟环境: 先创建一个虚拟python环境,敲如下代码 然后再到该虚拟环境里面安装自己想要的包 激活虚拟环境 然后再聚类训练这些 验证GPU加速 阿里源 pip install torch torchvision -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mir…...
<STC32G12K128入门第十三步>驱动W5500进行TCP_Client通信
前言 最近本人接触到了一个消费类产品需要用到以太网,并且需要连接服务器,同时需要发送https协议。本文就是讲解如何运行TCP客户端, 一、W5500讲解? W5500是一款10/100M的以太网转换芯片,内部集成了TCP/IP协议栈。并且支持SPI/I2C协议。我在STC32上面使用的是软件SPI。…...
【Go语言】Ergo:构建分布式系统的现代化 Erlang 框架
Ergo 是一个基于 Go 语言的开源框架,专门用于构建分布式系统。它为开发人员提供了与 Erlang/OTP 类似的编程模型和功能。Ergo 通过将 Erlang 的强大分布式并发编程模型带入 Go 语言的生态中,使得开发者能够轻松创建高度可靠、可扩展的分布式应用程序。 …...
教资备考--高中数学(仅为高中数学梳理)
按照高中学习数学梳理的方案进行整理...
Qt 学习第十一天:QTableWidget 的使用
一、创建QTableWidget对象,设置大小,在窗口的位置 //创建tablewidgetQTableWidget *table new QTableWidget(this);table->resize(550, 300);table->move(100, 100); //移动 二、设置表头 //设置表头QStringList headerList; //定义headerList…...
【Linux】基础指令 1
Linux中各个指令是相互联系的,所以一开始学习Linux时,对指令很陌生是正常的,不用花费大量的时间去刻意的记忆,在我们一次次的使用当中,这些指令自然会烂熟于心。 简单看看各个指令的功能 ls指令 显示当前目录下的文…...
Linux_kernel字符设备驱动12
一、字符设备的编程框架 在Linux_kernel驱动开发11中,我们介绍的系统调用。只是为了做一个实验,在真正开发时,我们并不会直接在内核中添加一个新的系统调用,这样做会导致内核体积变大。 1、字符设备结构体 我们实现一个硬件字符设…...
服务保护sentinel
线程隔离 - 线程池隔离:给每个服务调用业务分配一个线程池,利用线程池本身实现隔离效果。 - 信号量隔离:不创建线程池,而是计数器模式,记录业务使用的线程数量,达到信号量上限时,禁止新的请求。…...
【ubuntu】Ubuntu20.04安装中文百度输入法
1.download 百度Linux输入法-支持全拼、双拼、五笔 2.unzip unzip Ubuntu_Deepin-fcitx-baidupinyin-64.zip 3.setting 3.1 setting fcitx sudo apt install aptitude sudo aptitude install fcitx-bin fcitx-table fcitx-config-gtk fcitx-frontend-all sudo aptitude in…...
蓝桥杯【物联网】零基础到国奖之路:十八. 扩展模块之光敏和AS312
蓝桥杯【物联网】零基础到国奖之路:十八.扩展模块之光敏和AS312 第一节 硬件解读第二节 CubeMX配置第二节 代码 第一节 硬件解读 光敏和AS312如下图: 光敏电阻接到了扩展模块的5号引脚,5号引脚接了2个电阻,R8和光敏电阻。我们通过ADC读取这…...
如何在微信小程序中实现分包加载和预下载
如何在微信小程序中实现分包加载和预下载 概述 微信小程序提供了分包加载和预下载功能,这有助于优化应用的加载时间,提升用户体验。本文将详细介绍如何在微信小程序中配置分包加载和预下载。 步骤一:配置分包加载 修改app.json文件&#x…...
初识TCP/IP协议
回顾上文 来回顾一下TCP协议的特性,有一道比较经典的题:如何使用UDP实现可靠传输,通过应用程序的代码,完成可靠传输的过程? 原则,TCO有啥就吹啥,引入滑动窗口,引入流量控制&#x…...
使用 classification_report 评估 scikit-learn 中的分类模型
介绍 在机器学习领域,评估分类模型的性能至关重要。scikit-learn 是一个功能强大的 Python 机器学习工具,提供了多种模型评估工具。其中最有用的函数之一是 classification_report,它可以全面概述分类模型的关键指标。在这篇文章中ÿ…...
高翔【自动驾驶与机器人中的SLAM技术】学习笔记(十)高翔书中的细节:参考链接;卫星导航;ESKF
一、 参考链接 我认真查找了好多地方:结果在最后一页。 作者GITHUB链接如下: https://github.com/gaoxiang12/slam_in_autonomous_driving 全书所有参考链接 :如下 1 https://www.sae.org/standards/content/j3016_202104 2 http://www.evinchina.com/articleshow-217.htm…...
【在Python中爬取网页信息并存储】
在Python中爬取网页信息并存储的过程通常涉及几个关键步骤:发送HTTP请求、解析HTML内容、提取所需数据,以及将数据存储到适当的格式中(如文本文件、CSV文件、数据库等)。以下是一个更详细的指南,包括示例代码ÿ…...
ESP32 Bluedroid 篇(1)—— ibeacon 广播
前言 前面我们已经了解了 ESP32 的 BLE 整体架构,现在我们开始实际学习一下Bluedroid 从机篇的广播和扫描。本文将会以 ble_ibeacon demo 为例子进行讲解,需要注意的一点是。ibeacon 分为两个部分,一个是作为广播者,一个是作为观…...
【通配符】粗浅学习
1 背景说明 首先要注意,通配符中的符号和正则表达式中的特殊符号具备不同的匹配意义,例如:*在正则表达式中表示里面是指匹配前面的子表达式0次或者多次,而在通配符领域则是表示代表0个到无穷个任意字符。 此外,要注意…...
Spring MVC 常用注解
目录 基础概念 常用注解介绍 基础概念 1、MVC :代表一种软件架构设计思想,通俗的理解:客户端发送请求到后台服务器的Controller(C),控制器调用Model(M)来处理业务逻辑,处理完成后,返回处理后的数据到Vie…...
水泵模块(5V STM32)
目录 一、介绍 二、传感器原理 1.尺寸介绍 2.继电器控制水泵电路原理图 三、程序设计 main.c文件 bump.h文件 bump.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 水泵模块(bump)通常是指用于液体输送系统的组件,它负责将水或其他流体从低处提…...
需求6:如何写一个后端接口?
这两天一直在对之前做的工作做梳理总结,不过前两天我都是在总结一些bug的问题。尽管有些bug问题我还没写文章,但是,我今天不得不先停下对bug的总结了。因为在国庆之后,我需要自己开发一个IT资产管理的功能,这个功能需要…...
《Linux从小白到高手》理论篇(五):文件权限控制及文件操作相关的命令
本篇介绍Linux文件权限控制及文件操作相关的命令,看完本文,有关Linux文件权限控制及文件操作相关的常用命令你就掌握了99%了。 文件权限 在介绍文件权限之前先来复习下Linux的文件类型,始终记住那句话:Linux系统下,一…...
异常场景分析
优质博文:IT-BLOG-CN 为了防止黑客从前台异常信息,对系统进行攻击。同时,为了提高用户体验,我们都会都抛出的异常进行拦截处理。 一、异常处理类 Java把异常当做是破坏正常流程的一个事件,当事件发生后,…...
Leetcode: 0001-0010题速览
Leetcode: 0001-0010题速览 本文材料来自于LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解 遵从开源协议为知识共享 版权归属-相同方式…...
计算机的错误计算(一百一十二)
摘要 计算机的错误计算(六十三)与(六十八)以及(六十九)分别探讨了大数与 附近数以及 附近数 的余切函数的计算精度问题。本节讨论余切序列(即迭代 )的计算精度问题。 余切序列是指…...
C++基础(7)——STL简介及string类
目录 1.STL简介 1.1什么是 1.2STL的历史版本 1.3STL的六大组件 编辑 1.4有用的网址 2.string类 2.1string的多种定义方式 2.2string的插入 2.2.1尾插(push_back) 2.2.2insert插入 2.3拼接(append) 2.4删除 2.4.1尾…...
配置Nginx以支持通过HTTPS回源到CDN
要配置Nginx以支持通过HTTPS回源到CDN,你需要确保Nginx已正确配置SSL,并且能够处理来自CDN的HTTPS请求。以下是一个简化的Nginx配置示例,它配置了SSL并设置了代理服务器参数以回源到CDN: server {listen 443 ssl;server_name you…...
yolov10+strongsort的目标跟踪实现
此次yolov10deepsort不论是准确率还是稳定性,再次超越了之前的yolodeepsort系列。 yolov10介绍——实时端到端物体检测 YOLOv10 是清华大学研究人员在 UltralyticsPython 清华大学的研究人员在 YOLOv10软件包的基础上,引入了一种新的实时目标检测…...
C# 字符与字符串
本课要点: 1、字符类Char的使用 2、字符串类String的使用 3、可变字符串****StringBuilder 4、常见错误 一 何时用到字符与字符串 问题: 输出C#**课考试最高分:**98.5 输出最高分学生姓名:张三 输出最高分学生性别&#x…...
在Ubuntu 16.04上使用LEMP安装WordPress的方法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 WordPress 是互联网上最流行的 CMS(内容管理系统)。它允许您在 MySQL 后端和 PHP 处理的基础上轻松设置灵…...
网站开发 居易国际/宁波seo服务快速推广
一. DMA的引入 假设我们让2440来拷贝一段数据, 从内存的src拷贝到dst,拷贝的长度为size. char *src AAA; char *dst BBB; int i; for (i 0; i <size; i) dst[i] src[i]; 这写出来的代码是让cpu来执行数据的拷贝工作, 显然,cpu在执行这个过程中,同一时间内只能做一…...
做外贸那个网站比较好/百度推广网站一年多少钱
TRANSPOSEhans有的时候,我们需要将数据从列转置到行,或将数据从行转置到列。 可以通过复制、粘贴或者使用“转置”选项来执行此操作。 但这样做会创建重复的数据。 如果不希望产生重复数据,可选择键入公式,而不是用 TRANSPOSE 函数…...
网站建设和管理心得/百度快速优化推广
句柄泄漏检测-简单 在调试之前首先确定是不是真的发生了句柄泄漏,简单的检测方法是通过任务管理器来查看进程的句柄数是不是居高不下,任务管理器默认不显示句柄数,要查看进程的句柄数需要先切换到进程选项卡,然后单击“查看”菜单…...
门户网站建设和运行招标公告/白山seo
概述 Windows 命令提示符和PowerShell等命令行环境使用空格分隔命令和参数,但文件和文件夹名称也可以包含空格。要指定带有空格的文件路径,您需要“转义”它。 命令行 101:为什么必须转义空格 “转义”字符会改变其含义。例如,转义…...
公司网站免费网站免费/深度搜索
《三星面试英语自我介绍.ppt》由会员分享,可在线阅读,更多相关《三星面试英语自我介绍.ppt(10页珍藏版)》请在装配图网上搜索。1、Bean Liu,I am 25 years old . I was born in Shandong province . Im very happy that I am qualified for this intervi…...
wordpress怎么修改菜单栏关键词/杭州百度seo代理
一、实验目的设计并实现Unix的“time”命令。“mytime”命令通过命令行参数接受要运行的程序,创建一个独立的进程来运行该程序,并记录程序运行的时间。二、实验内容在Windows下实现: 使用CreateProcess()来创建进程使用WaitForSingleObject()在“mytime”…...