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

Maven 基础环境搭建与配置(二)

四、本地仓库配置,存储依赖

在 Maven 的世界里,本地仓库就像是一个 “私人储物间”,专门用来存放项目所需的各种依赖构件,如 JAR 包、WAR 包等。当我们构建项目时,Maven 会首先在本地仓库中查找所需的依赖,如果找到了,就直接使用,避免了重复从远程仓库下载,大大提高了构建效率;如果没有找到,才会去远程仓库下载,并将下载后的构件存储到本地仓库中,以备后续使用。

默认情况下,Maven 的本地仓库位于用户目录下的.m2/repository 文件夹(例如在 Windows 系统中,可能是 C:\Users\ 你的用户名.m2\repository )。然而,这个默认位置可能并不总是符合我们的需求,比如系统盘空间有限,或者希望将本地仓库放置在一个特定的磁盘分区中进行统一管理。因此,我们通常需要指定一个新的本地仓库位置。

要配置本地仓库的路径,我们需要编辑 Maven 安装目录下 conf 文件夹中的 settings.xml 文件。这个文件是 Maven 的核心配置文件,通过它可以对 Maven 的各种行为进行定制。在编辑 settings.xml 文件时,需要注意路径中不能包含中文,因为 Maven 在处理路径时,对中文的支持可能存在问题,可能会导致一些意想不到的错误。

使用文本编辑器(如 Notepad++、Sublime Text 等)打开 settings.xml 文件,在文件中找到标签,该标签默认是被注释掉的。将其从注释中移出,并修改标签内的值为你想要设置的本地仓库路径。例如,你在 D 盘创建了一个名为 maven_repository 的文件夹作为本地仓库,那么就将标签修改为:

 

<localRepository>D:\maven_repository</localRepository>

修改完成后,保存 settings.xml 文件。这样,Maven 就会将依赖构件存储到你指定的本地仓库路径中了。在后续的项目构建过程中,Maven 会从这个新的本地仓库中查找和存储依赖,确保项目的依赖管理更加高效和灵活。

五、配置阿里镜像,加速下载

在使用 Maven 进行项目开发时,依赖下载的速度直接影响着开发效率。Maven 默认的中央仓库位于国外,对于国内的开发者来说,由于网络等因素,从默认中央仓库下载依赖往往速度较慢,甚至可能出现连接超时等问题。为了解决这个问题,我们可以配置使用国内的镜像源,其中阿里云镜像源是一个非常不错的选择。

阿里云镜像拥有强大的服务器集群和完善的网络架构,位于国内,具有高速访问、稳定性高和资源丰富等优势,能够极大地提升依赖下载的速度和稳定性。其同步了 Maven 中央仓库的绝大多数资源,基本可以满足我们日常开发的需求。

配置阿里镜像的操作同样需要在 Maven 安装目录下 conf 文件夹中的 settings.xml 文件中进行。打开 settings.xml 文件,找到<mirrors>标签,这个标签用于配置镜像仓库。在<mirrors>标签内添加以下内容:

 

<mirror>

<id>aliyunmaven</id>

<name>阿里云公共仓库</name>

<url>https://maven.aliyun.com/repository/public</url>

<mirrorOf>central</mirrorOf>

</mirror>

上述配置中,<id>是镜像的唯一标识,这里设置为 “aliyunmaven” ;<name>是对镜像的描述,方便我们识别;<url>指定了阿里云镜像仓库的地址,这是我们下载依赖的新来源;<mirrorOf>标签的值为 “central”,表示该镜像将替代默认的中央仓库,当 Maven 需要下载依赖时,会优先从这个阿里云镜像仓库中获取。

添加完成后,保存 settings.xml 文件。此后,当我们在项目中执行 Maven 命令,如mvn clean install、mvn dependency:resolve等,Maven 就会从阿里云镜像仓库下载项目所需的依赖,而不再是默认的国外中央仓库,从而大大加快了依赖下载的速度,提升项目构建的效率。

六、IDEA 中的 Maven 配置

在完成了 Maven 的基础环境搭建和配置后,接下来我们要将 Maven 与我们常用的 Java 开发工具 IDEA 进行集成,让 IDEA 能够正确地使用 Maven 来管理项目。在 IDEA 中配置 Maven 主要包括设置本地 Maven 的安装路径、配置文件路径以及本地仓库路径,确保 IDEA 能够识别并利用我们之前配置好的 Maven 环境。

(一)打开 IDEA 的设置

打开 IDEA 开发工具,如果你是新建项目,可以在欢迎界面点击 “Configure” -> “Settings” ;如果你已经打开了项目,也可以通过菜单栏中的 “File” -> “Settings” 进入设置界面。

(二)设置 Maven 相关路径

  1. Maven home path:在设置界面中,展开 “Build, Execution, Deployment”,点击 “Build Tools” -> “Maven” 。在右侧的 “Maven home directory” 输入框中,填写你之前安装 Maven 的目录,例如 “D:\Maven\apache - maven - 3.8.6” 。这一步是告诉 IDEA 你本地 Maven 的安装位置,让 IDEA 能够找到 Maven 的可执行文件和相关配置文件。
  1. User settings file:在 “User settings file” 输入框中,指定 Maven 安装目录下 conf 文件夹中的 settings.xml 文件路径,例如 “D:\Maven\apache - maven - 3.8.6\conf\settings.xml” 。这个配置文件包含了我们之前设置的本地仓库路径、镜像源等重要配置信息,IDEA 通过读取这个文件来了解 Maven 的行为设置。这里需要勾选 “Override” 选项,以确保 IDEA 使用我们指定的 settings.xml 文件,而不是默认的配置。
  1. Local repository:如果在 settings.xml 文件中已经正确配置了本地仓库路径,那么 “Local repository” 输入框会自动显示对应的路径。如果没有自动显示或者显示的路径不正确,你可以手动修改为你之前设置的本地仓库路径,例如 “D:\maven_repository” 。这个路径是 Maven 存储项目依赖构件的地方,IDEA 会根据这个路径来管理项目的依赖。

(三)应用设置并验证

完成上述设置后,点击 “OK” 按钮应用设置。为了验证配置是否成功,你可以新建一个 Maven 项目来进行测试。在 IDEA 中,点击 “File” -> “New” -> “Project” ,在弹出的新建项目窗口中,选择 “Maven”,然后按照向导提示进行项目的创建。在创建过程中,观察 IDEA 是否能够正确识别和使用我们配置的 Maven 环境。如果创建项目过程中没有出现错误,并且在项目的 pom.xml 文件中添加依赖后,Maven 能够正常下载依赖到指定的本地仓库中,那么就说明 IDEA 中的 Maven 配置成功了。

通过以上步骤,我们就成功地在 IDEA 中配置好了 Maven,使得我们在使用 IDEA 进行 Java 项目开发时,能够充分利用 Maven 强大的项目管理和构建功能,提高开发效率和项目的可维护性。在后续的开发过程中,我们可以根据项目的需求,在 pom.xml 文件中灵活地添加、删除和管理项目依赖,利用 Maven 的插件来执行各种构建任务,如编译代码、运行测试、打包项目等。

七、常见问题及解决方案

在搭建 Maven 基础环境的过程中,可能会遇到各种各样的问题,下面为大家列举一些常见问题及对应的解决方案,希望能帮助大家顺利完成 Maven 的搭建与配置。

(一)环境变量配置错误

  1. 问题描述:在命令行中执行mvn -v命令时,提示 “'mvn' 不是内部或外部命令,也不是可运行的程序或批处理文件” 。这通常是由于环境变量配置不正确导致系统无法找到 Maven 的可执行文件。可能的原因包括:MAVEN_HOME 变量未正确设置,变量值填写错误;没有将 Maven 的 bin 目录添加到 Path 变量中;环境变量配置后未生效等。
  1. 解决方案
    • 仔细检查 MAVEN_HOME 变量的配置,确保变量值为 Maven 的安装目录,且路径准确无误,没有拼写错误和多余的空格。例如,在 Windows 系统中,如果 Maven 安装在 “D:\Maven\apache - maven - 3.8.6” ,那么 MAVEN_HOME 变量值就应该是这个路径。
    • 确认 Path 变量中是否正确添加了 Maven 的 bin 目录。在 Windows 系统中,应该添加 “% MAVEN_HOME%\bin” ;在 Linux 系统中,应该添加 “${MAVEN_HOME}/bin” 。如果添加有误,重新编辑 Path 变量进行正确的添加。
    • 如果是在修改环境变量后立即执行mvn -v命令出现问题,可能是环境变量尚未生效。在 Windows 系统中,可以尝试重新打开命令提示符窗口,或者使用 “setx” 命令来使环境变量立即生效;在 Linux 系统中,执行source /etc/profile命令使环境变量配置立即生效。

(二)无法下载依赖

  1. 问题描述:在项目中添加依赖后,执行 Maven 命令(如mvn clean install)时,出现依赖无法下载的情况,可能会看到类似 “Could not transfer artifact xxx:xxx:xxx from/to central (http://repo1.maven.org/maven2/) : Connect to repo1.maven.org:80 [repo1.maven.org/151.101.44.215] failed: Connection timed out: connect” 的错误信息。这可能是由于网络问题、镜像配置错误、仓库缓存污染或者依赖项配置错误等原因导致的。
  1. 解决方案
    • 网络问题:首先检查网络连接是否正常,可以尝试访问其他网站来确认网络是否畅通。如果是公司网络,可能存在代理设置,需要在 Maven 的 settings.xml 文件中配置代理。在<proxies>标签内添加如下配置:
 

<proxy>

<id>optional</id>

<active>true</active>

<protocol>http</protocol>

<host>your-proxy-host</host>

<port>your-proxy-port</port>

<username>your-username</username>

<password>your-password</password>

<nonProxyHosts>local.net|some.host.com</nonProxyHosts>

</proxy>

其中,your-proxy-host、your-proxy-port、your-username和your-password需要替换为实际的代理服务器地址、端口、用户名和密码;nonProxyHosts指定不需要通过代理访问的主机列表。

  • 镜像配置错误:检查 settings.xml 文件中镜像的配置是否正确。确保<mirror>标签中的<url>地址是有效的,并且<mirrorOf>标签的值正确设置。如果使用的是阿里云镜像,参考之前配置阿里镜像的步骤,仔细核对配置内容。如果配置错误,修改为正确的配置后,重新执行 Maven 命令。
  • 仓库缓存污染:当依赖下载失败时,Maven 会在本地仓库中生成一个.lastUpdated 后缀的文件,这个文件可能会导致后续的下载失败。解决方法是找到本地仓库中对应依赖的目录,删除该目录下所有以.lastUpdated 结尾的文件,然后重新执行 Maven 命令,让 Maven 重新下载依赖。例如,如果是com.example:example - dependency:1.0.0这个依赖下载失败,就找到本地仓库中com\example\example - dependency\1.0.0目录,删除其中的.lastUpdated 文件。
  • 依赖项配置错误:检查项目的 pom.xml 文件中依赖项的配置是否正确。确保<groupId>、<artifactId>和<version>等信息准确无误,版本号与项目需求匹配。例如,如果依赖的是 Spring Boot 2.6.3 版本,<version>标签的值就应该是 “2.6.3” 。如果依赖项配置错误,修改 pom.xml 文件后,重新执行 Maven 命令。

(三)IDEA 中 Maven 配置不生效

  1. 问题描述:在 IDEA 中配置了 Maven 的安装路径、配置文件路径和本地仓库路径后,创建 Maven 项目时,IDEA 仍然无法正确识别和使用配置的 Maven 环境,可能出现无法下载依赖、无法执行 Maven 命令等问题。
  1. 解决方案
    • 确认在 IDEA 中配置的 Maven 路径是否正确。再次检查 “Build, Execution, Deployment” -> “Build Tools” -> “Maven” 下的 “Maven home directory”、“User settings file” 和 “Local repository” 路径是否与实际的 Maven 安装目录、settings.xml 文件路径和本地仓库路径一致,确保没有拼写错误和路径选择错误。
    • 检查 IDEA 是否正确加载了配置。在 IDEA 的设置中,点击 “Apply” 和 “OK” 按钮保存配置后,有时候可能需要重启 IDEA 才能使配置生效。尝试重启 IDEA,然后重新创建 Maven 项目或执行 Maven 命令,看问题是否解决。
    • 如果问题仍然存在,可以查看 IDEA 的日志文件,找到关于 Maven 配置的错误信息。在 IDEA 中,通过 “Help” -> “Show Log in Explorer”(Windows 系统)或 “Help” -> “Show Log in Finder”(Mac 系统)打开日志文件目录,查看最新的日志文件,根据日志中的错误提示来解决问题。例如,如果日志中提示 “Could not find settings.xml file at xxx”,则说明 IDEA 无法找到指定的 settings.xml 文件,需要检查文件路径是否正确。

八、总结回顾

通过以上详细的步骤,我们成功完成了 Maven 基础环境的搭建与配置,包括 Maven 的下载、环境变量的设置、本地仓库的指定、镜像源的配置以及在 IDEA 中的集成等关键环节。这些步骤是我们使用 Maven 进行项目管理和构建的基石,每一步都至关重要。

在实际的 Java 项目开发中,Maven 将成为我们不可或缺的得力助手。它能够帮助我们高效地管理项目依赖,确保项目在不同环境下的一致性和稳定性;通过标准化的项目目录结构和生命周期管理,让团队协作更加顺畅,项目的构建、测试和部署过程更加自动化和规范化。

希望大家在掌握了 Maven 基础环境搭建后,能够积极地在实际项目中应用 Maven,不断探索它强大的功能和丰富的插件生态系统。在使用过程中,可能还会遇到各种各样的问题,但不要害怕,每一次解决问题的过程都是成长的宝贵经验。相信通过不断地实践和积累,你一定能够熟练掌握 Maven,让它为你的 Java 开发之路保驾护航,提升你的开发效率和项目质量。

相关文章:

Maven 基础环境搭建与配置(二)

四、本地仓库配置&#xff0c;存储依赖 在 Maven 的世界里&#xff0c;本地仓库就像是一个 “私人储物间”&#xff0c;专门用来存放项目所需的各种依赖构件&#xff0c;如 JAR 包、WAR 包等。当我们构建项目时&#xff0c;Maven 会首先在本地仓库中查找所需的依赖&#xff0c…...

了解ffmpeg,安装并配置环境变量

一、了解FFmpeg FFmpeg 是一个功能强大的开源多媒体框架&#xff0c;能够处理音视频的录制、转换和流媒体传输。它由 Fabrice Bellard 发起&#xff0c;采用 LGPL/GPL 许可证&#xff0c;广泛应用于各种平台&#xff0c;包括 Linux、Windows 和 macOS 什么是FFmpeg&#xff1…...

Deepseek reasoning-content 透出调研

Deepseek reasoning-content 透出调研 部署方式&#xff1a;Docker Ollama Deepseek-R1:8b 参考&#xff1a; https://help.apiyi.com/deepseek-reasoning-content-guide.htmlhttps://yuluo-yx.github.io/blog/%E4%BD%BF%E7%94%A8-Ollama-%E9%83%A8%E7%BD%B2-DeepSeek-%E5…...

Codes 开源免费研发项目管理平台 2025年第一个大版本3.0.0 版本发布及创新的轻IPD实现

Codes 简介 Codes 是国内首款重新定义 SaaS 模式的开源项目管理平台&#xff0c;支持云端认证、本地部署、全部功能开放&#xff0c;并且对 30 人以下团队免费。它通过创新的方式简化研发协同工作&#xff0c;使敏捷开发更易于实施。并提供低成本的敏捷开发解决方案&#xff0…...

Leetcode K个一组翻转链表

双指针法&#xff0c;java solution class Solution {public ListNode reverseKGroup(ListNode head, int k) {if(head null || head.next null) return head;//设置pre和index节点ListNode pre head, index head.next;int m 0;while(m < k && index ! null) …...

电脑开机一段时间就断网,只有重启才能恢复网络(就算插网线都不行),本篇文章直接解决,不要再看别人的垃圾方法啦

下面的是我解决问题的心路历程&#xff0c;不想看的可以直接跳到解决方法上面&#xff01; 内心思路&#xff1a; w11电脑更新过系统后&#xff0c;我的电脑是常年不关机的&#xff0c;但是一天突然断网&#xff0c;试了很多方法都连不上&#xff0c;重启电脑就会好&#xff0…...

Python 性能剖析利器:DTrace 与 SystemTap 深度指南

在 Python 开发过程中&#xff0c;深入了解程序的运行时行为对于优化性能、排查问题至关重要。本文聚焦于 DTrace 和 SystemTap 这两款强大的监控工具&#xff0c;详细介绍它们在 CPython 中的应用&#xff0c;包括启用静态标记、编写 DTrace 和 SystemTap 脚本、利用可用的静态…...

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…...

工作-绩效笔记

文章目录 销售项目经理研发项目管理人天拆分抓手评估人天如何拆的细而且有理有据管理等 对这个一直不感兴趣&#xff0c;干好活就行了&#xff0c;但是公司肯定是出于量化的指标&#xff0c;而且不同角色指标不一样&#xff0c;记录下也科普下自己。 销售 销售额 确收、回款 …...

GPT-SoVITS更新V3 win整合包

GPT-SoVITS 是由社区开发者联合打造的开源语音生成框架&#xff0c;其创新性地融合了GPT语言模型与SoVITS&#xff08;Singing Voice Inference and Timbre Synthesis&#xff09;语音合成技术&#xff0c;实现了仅需5秒语音样本即可生成高保真目标音色的突破。该项目凭借其开箱…...

WPF的页面设计和实用功能实现

目录 一、TextBlock和TextBox 1. 在TextBlock中实时显示当前时间 二、ListView 1.ListView显示数据 三、ComboBox 1. ComboBox和CheckBox组合实现下拉框多选 四、Button 1. 设计Button按钮的边框为圆角&#xff0c;并对指针悬停时的颜色进行设置 一、TextBlock和TextBox…...

Python项目源码34:网页内容提取工具1.0(Tkinter+requests+html2text)

------★Python练手项目源码★------- Python项目32&#xff1a;订单销售额管理系统1.0&#xff08;TkinterCSV&#xff09; Python项目31&#xff1a;初学者也能看懂的聊天机器人1.0源码&#xff08;命令行界面Re正则表达式&#xff09; Python项目源码30&#xff1a;待办事…...

javaSE学习笔记22-线程(thread)-线程通信、线程池

线程通信 应用场景&#xff1a;生产者和消费者问题 假设仓库中只能存放一件产品&#xff0c;生产者将生产出来的产品放入仓库&#xff0c;消费者将仓库中产品取走消费 如果仓库中没有产品&#xff0c;则生产者将产品放入仓库&#xff0c;否则停止生产并等待&#xff0c…...

vue单据打印 一维码、二维码实现

编码规则与 JavaScript 代码实现 编码规则数组&#xff1a;定义了 Code 128 条形码编码规则数组 BARS&#xff0c;其中每个数字对应一种条形码的线条组合模式。 const BARS [212222,222122,222221,121223,121322,131222,122213,122312,132212,221213,221312,231212,112232,12…...

远程控制macOS一直卡在100%,能连接上了却只显示了壁纸?

前言 前段时间有个朋友过来咨询关于Windows使用第三方远程软件&#xff08;向日葵、Todesk等&#xff09;远程连接控制macOS系统&#xff0c;但出现了一些奇奇怪怪的问题。 比如在连接的时候&#xff0c;一直卡在100%连接&#xff0c;对方的电脑却已经显示已经被控制的状态。…...

Spring Boot定时任务原理

Spring Boot定时任务原理 在现代应用中&#xff0c;定时任务的调度是实现周期性操作的关键机制。Spring Boot 提供了强大的定时任务支持&#xff0c;通过注解驱动的方式&#xff0c;开发者可以轻松地为方法添加定时任务功能。本文将深入探讨 Spring Boot 中定时任务的实现原理…...

C#初级教程(7)——初级期末检测

练习 1&#xff1a;计算圆的周长和面积 改编题目&#xff1a;编写一个 C# 程序&#xff0c;让用户输入圆的半径&#xff0c;然后计算并输出该圆的周长和面积&#xff0c;结果保留两位小数。 using System;class CircleCalculation {static void Main(){const double pi 3.14…...

原生稀疏注意力机制(NSA):硬件对齐且可原生训练的稀疏注意力机制-论文阅读

摘要 长上下文建模对于下一代语言模型至关重要&#xff0c;但标准注意力机制的高计算成本带来了巨大的计算挑战。稀疏注意力提供了一种在保持模型能力的同时提高效率的有前途的方向。本文提出了一种名为 NSA&#xff08;原生可训练稀疏注意力机制&#xff09; 的方法&#xff…...

Apache Struts RCE (CVE-2024-53677)

前言 对目前的Apache Struts RCE (CVE-2024-53677)的poc进行总结&#xff0c;由于只能单个ip验证&#xff0c;所以自己更改一下代码&#xff0c;实现&#xff1a;多线程读取url验证并保存&#xff0c;更改为中文解释 免责声明 请勿利用文章内的相关技术从事非法测试&#xf…...

GIS地图、轨道交通与智能驾驶UI设计:未来交通的智能化探索

随着科技的飞速发展&#xff0c;我们正迎来一个高度智能化的未来。在这个时代背景下&#xff0c;GIS&#xff08;地理信息系统&#xff09;、轨道交通以及智能驾驶UI设计正逐步成为推动交通行业变革的重要力量。本文将深入探讨这三者之间的内在联系及其在未来交通系统中的应用前…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案

目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后&#xff0c;迭代器会失效&#xff0c;因为顺序迭代器在内存中是连续存储的&#xff0c;元素删除后&#xff0c;后续元素会前移。 但一些场景中&#xff0c;我们又需要在执行删除操作…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...