很多刚接触Spring Boot的人在IDEA里新建一个项目或者从GitHub上拉下一个老项目还没来得及写一行代码就先被Maven给了一个下马威控制台飘红一片核心报错却是这么一句话——Plugin org.springframework.boot:spring-boot-maven-plugin not found。我第一次遇到这个报错的时候第一反应是去百度结果搜出来的回答五花八门有的让你改IDEA设置有的让你删.m2目录还有的让你把整个项目重建一遍试了一圈问题原地不动心态直接爆炸。后来做得多了才明白这个报错看着吓人实际绝大多数情况下都是Maven仓库和配置的问题跟你的代码一点关系都没有。它不像是语法错误那样需要你去改代码而是构建工具在“拉取插件”这个环节卡住了。这篇文章我就把这类问题的来龙去脉、排查思路和最终解决办法一次性讲清楚包括那些网上没人细说的坑。无论你是刚入门的小白还是被这个报错折磨过的老开发照着下面的步骤走完大概率能把问题解决得干干净净。1. 先看报错本质Maven在“找”插件而不是在“编译”代码1.1 报错原文拆解完整的报错信息一般长这样[ERROR] Plugin org.springframework.boot:spring-boot-maven-plugin:2.7.0 not found或者你会在IDEA的Maven工具窗口里看到plugin org.springframework.boot:spring-boot-maven-plugin:xxx not found in any repository注意几个关键词org.springframework.boot是插件的groupIdspring-boot-maven-plugin是artifactId后面冒号跟的2.7.0或者别的数字是版本号。这条报错的字面意思是Maven在你配置的若干个仓库里都没有找到这个插件对应的文件。这里有个很关键的点Maven本身不是一个“什么插件都内置”的工具。它只负责下载和调度插件所有功能插件——包括Spring Boot提供的打包、启动、依赖管理相关插件——都必须先从仓库下载到本地才能运行。这个下载过程和你用pip装Python包、用npm装Node模块本质上是同一件事。如果下载环节出了问题你项目里依赖的那一大票jar包和插件统统都会报“not found”。1.2 插件文件在本地仓库里到底长什么样Maven下载到的所有东西都会存放在本地仓库一般默认路径是用户目录下的.m2/repositoryLinux和macOS就是~/.m2/repositoryWindows就是C:\Users\你的用户名\.m2\repository。spring-boot-maven-plugin的jar包会对应这样一个目录结构~/.m2/repository/org/springframework/boot/spring-boot-maven-plugin/2.7.0/这个目录下正常情况下应该至少有这几个文件spring-boot-maven-plugin-2.7.0.jar spring-boot-maven-plugin-2.7.0.pom如果这个目录不存在或者目录存在但里面只有一堆.lastUpdated结尾的文件那么问题就非常明确了插件压根没下载成功或者下载到一半就失败了。.lastUpdated是Maven特有的“下载失败标记”它长得很像一个隐藏文件记录了上一次下载失败的时间。你如果看到.lastUpdated文件却看不到jar包说明本地仓库把“失败的下载记录”缓存了下来Maven为了不一遍遍重复请求失败的URL会在一定时间内直接判定为“不可用”这时候即使网络通了、仓库配置对了它也可能不去重新拉取。这个问题后面我会专门讲怎么处理。1.3 为什么“not found”比“连接失败”更让人迷惑如果你遇到的是Connection timed out或者Could not transfer artifact这类报错至少还知道是网络问题。但not found会让你怀疑是不是自己的项目配错了是不是插件的坐标写错了甚至怀疑是不是Spring Boot这个框架本身有问题。实际上not found是Maven给出的一个比较模糊的汇总结果它背后可能是仓库真的是404了极少见但如果你用了某个不存在的私有仓库地址就可能撞上本地仓库缓存了失败记录Maven直接跳过了下载镜像配置不生效Maven实际上请求了一个无法访问的仓库地址根本没有仓库地址可用比如settings.xml被改坏了。我这些年帮人排查下来90%以上的not found其实是后三种情况。所以别急着改pom.xml先把自己的Maven家族配置捋清楚问题一般就浮出水面了。2. 三个最常见的根因对号入座2.1 本地仓库空无一物且默认仓库不可达很多新手的电脑上Maven是装了的IDEA的设置也没动过但项目一刷新就是报错。原因说起来有点黑色幽默Maven默认使用的中央仓库地址是repo.maven.apache.org这个地址在国内的网络环境下访问很不稳定经常超时。而IDEA在创建Spring Boot项目时又默认会在pom.xml里引入spring-boot-maven-plugin这个插件体积不大但也不是几KB的小文件下载过程中只要网络抖一下就会失败然后留下一个.lastUpdated标记。我遇到过一位朋友为了下载这个插件反复点IDEA里的“刷新”点了十几次都是失败。这就是.lastUpdated机制在“作怪”第一次失败后的短时间内Maven根本不会重新尝试而是直接告诉你找不到。所以不是你运气不好是机制如此。2.2 多个Maven混用仓库路径各写各的这种情况在Windows上尤其常见。你先自己下载了一个Maven解压到某个目录设置好了MAVEN_HOME环境变量后来IDEA又自带了内置Maven再后来你从别的帖子那里复制了一个settings.xml放在了.m2目录下。结果就是你在命令行里用mvn -version看到的Maven和IDEA里用的Maven可能根本不是同一个。它们各自的settings.xml不一样本地仓库的路径也可能不一样。IDEA里Maven项目报not found但你在命令行执行mvn compile却一切正常。这种“一边正常一边报错”的情况十有八九就是两个Maven各看各的仓库。IDE里找不到插件而命令行用的那个仓库里其实有。反向的情况也存在命令行报错IDEA却正常那就是命令行用的Maven配置有问题。2.3 pom.xml里的坐标没问题但settings.xml镜像配置有问题还有一个非常隐蔽的坑你在pom.xml里写的插件版本号和Spring Boot版本不匹配。比如项目是Spring Boot 3.2.xpom里却指定了spring-boot-maven-plugin的2.3.0版本那Maven当然找不到——因为这个组合在仓库里可能不存在或者即使存在也会引发后续的一堆兼容性问题。更常见的是settings.xml里的镜像配置。很多人知道要改阿里云镜像但改的时候可能把mirrorOf写成了*这没问题问题在于有些人配置了多个镜像后写的镜像把先写的覆盖了或者镜像地址写错了一个字符比如少了s或者多了一个/。Maven的镜像配置是“最后一个匹配生效”的风格配置错乱时它会去请求一个根本不存在的仓库not found就是这么来的。3. 完整实操从诊断到修复一步步来3.1 第一步先搞清楚你用的到底是哪个Maven不要一上来就埋头改配置。先用最直接的方式定位现状。在IDEA里打开Settings→Build, Execution, Deployment→Build Tools→Maven看两个地方Maven home path这里显示的是IDEA当前使用的Maven如果你没改过通常显示的是IDEA自带的内置Maven路径类似IDEA安装目录/plugins/maven/lib/maven3User settings file这里是settings.xml路径如果显示的是C:\Users\xxx\.m2\settings.xml说明用的是用户级配置如果显示IDEA安装目录\plugins\maven\lib\maven3\conf\settings.xml说明用的是Maven自带的全局配置。同时在命令行敲mvn -version看输出里的Maven home和user settings路径。对比一下IDEA里的配置如果两边的Maven家目录或settings路径不一致这就是第一个隐患。我的建议是统一用一种方式。个人更推荐使用自己下载安装的Maven而不是IDEA内置的因为自己装的可以完全掌控settings.xml和本地仓库位置排查起来更清晰。如果你还没有单独安装Maven也可以直接使用IDEA内置的但必须保证settings.xml指向一个真实存在且配置正确的文件。很多人这一步就栽了settings.xml路径填了一个不存在的文件IDEA不会报错它会默默使用全默认配置然后去访问中央仓库。3.2 第二步验证本地仓库路径和插件缓存状态同样的位置IDEA的Maven设置页面里有一个Local repository字段。如果这里是空的IDEA会默认使用${user.home}/.m2/repository。打开文件管理器直接访问这个路径找到org/springframework/boot/spring-boot-maven-plugin目录如果整个目录都不存在说明这个插件从来没下载成功过如果目录存在但里面都是.lastUpdated文件说明下载被中断过如果目录里既有jar又有pom那说明插件本身是好的问题可能出在“IDEA用的仓库”和你现在看的这个“仓库”不是同一个。这里教大家一个命令行直接验证的方式。在项目根目录执行mvn dependency:resolve -DincludeGroupIdsorg.springframework.boot这条命令会强制Maven尝试解析项目里所有org.springframework.boot相关的依赖和插件。如果本地缓存有失败记录它会重新尝试下载。执行完再看插件目录有没有变化。3.3 第三步配置阿里云镜像从根上解决下载问题国内开发环境绕不过去的一道坎就是中央仓库连接不稳定。我的做法是直接在settings.xml里配置阿里云镜像。打开settings.xml在mirrors节点里加上这样一段mirror idaliyunmaven/id mirrorOf*/mirrorOf name阿里云公共仓库/name urlhttps://maven.aliyun.com/repository/public/url /mirror重点解释一下这几个标签的含义mirrorOf*/mirrorOf星号表示所有仓库请求都走这个镜像。不管你的pom里配置了中央仓库还是其他第三方仓库最终都会被转发到阿里云的这个地址url镜像的真实地址这里用的是阿里云公共仓库它聚合了中央仓库、Spring插件仓库等很多常用仓库的内容。如果你和同事协作公司内部有私有仓库Nexus那mirrorOf就要改成类似*,!private-repo这种写法让私有仓库不走镜像其他都走。这个细节新手容易忽略一旦写错私有仓库的构件就会404又会出现新的not found问题。配置完成后在IDE里点击一下Maven工具窗口的“刷新”按钮。如果是命令行执行mvn clean compile -U-U参数非常关键它表示强制刷新快照和失败缓存。加上它Maven才会无视之前留下的.lastUpdated标记重新去拉取。3.4 第四步清理本地仓库里的失败缓存如果你执行了带-U的命令之后插件还是报not found那就需要手动清理失败缓存了。定位到本地仓库路径把目录下所有以.lastUpdated结尾的文件找出来删掉。Windows命令行可以这样操作cd C:\Users\你的用户名\.m2\repository for /r %i in (*.lastUpdated) do del %imacOS和Linuxfind ~/.m2/repository -name *.lastUpdated -type f -delete删完之后回到项目里再刷一次Maven。我见过很多案例其实就是删掉这几个不起眼的小文件之后一切就恢复正常了。这里还要提醒一个细节删除.lastUpdated不会影响已经下载成功的jar包可以放心删。但我不建议一口气把整个.m2/repository目录都删掉因为那样的话你之前辛辛苦苦下载下来的所有依赖都得重新下一遍非常浪费时间。网上有些回答动不动就说“删除.m2目录重新下载”这是最粗暴也是最耗时的办法能不动原始仓库就别动。3.5 第五步在pom.xml里给插件补一个明确的版本号Spring Boot的父工程spring-boot-starter-parent里一般已经定义了spring-boot-maven-plugin的版本你只要在plugins里写plugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId /plugin它就会自动使用父工程里锁定的版本号。不需要手动指定。但有些项目没有继承父工程或者父工程版本比较特殊这时候就需要你手动指定版本。查看Spring Boot官方文档或当前项目对应的Spring Boot版本然后在插件声明里加上versionplugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId version3.2.5/version /plugin版本号选多少我的习惯是看一眼spring-boot-starter-parent标签里的版本保持和它一致。比如项目里写的是parent下的version3.2.5/version插件版本也用3.2.5。这样可以避免莫名其妙的兼容问题。如果你完全不确定该用哪个版本可以先不写version让Maven通过父工程自动推导。如果项目结构特殊没法自动推导再根据Spring Boot版本去查对应的插件版本。Spring Boot 2.x对应插件版本一般是2.xSpring Boot 3.x对应插件版本一般是3.x不要跨大版本用。3.6 第六步检查IDEA的Maven设置是否真的生效配置都改好了以后IDEA有时候还是报错这时候别急先检查IDEA是否用了你最新改的settings.xml。IDEA有一个很让人头疼的特性它不会自动读你外部修改的settings.xml除非你点Reload All Maven Projects按钮或者让设置窗口重新加载。在IDEA的Maven设置页面User settings file那一栏旁边通常有一个蓝色的小箭头或者文件夹图标点它可以重新选择文件。如果文件路径是对的但它内容是最新的那就直接点Apply然后回到项目里在Maven工具窗口点击那个“刷新”按钮一个圆形箭头的图标。有些场景下IDEA还会缓存旧的Maven模型。遇到这种情况光刷新还不够得用IDEA的Invalidate Caches功能File→Invalidate Caches...勾选Clear file system cache and Local History然后重启IDEA。这个操作会重建IDEA的索引代价是打开大项目会慢一些但能解决很多“配置明明改了却不生效”的疑难杂症。4. 从报错衍生出的高发问题附排查清单4.1 “本地有包但引不进来”是怎么回事这个问题的症状是你在.m2/repository里明明看到了某个jar包但项目的依赖列表里就是报红Maven还是说找不到。我第一次遇到也懵了后来才理清楚几个可能本地仓库里的jar包对应的pom文件缺失。Maven在解析依赖时是以pom文件为准的光有jar没有pomMaven会认为这个构件不完整从而拒绝使用。排查方法很简单看那个构件目录里有没有.pom文件没有的话从能下载的地方重新拉一份或者手动放一个。jar包本身是损坏的。下载中断留下的半截文件虽然带着.jar后缀但大小可能只有几KB甚至是个HTML页面。用压缩软件打开一下就能判断打不开就是坏的删掉重下。版本号对不上。你本地仓库里的是1.0.0pom里引用的是1.0.1那当然报错。这个属于低级错误但真的不少人犯。解决方案其实和插件报错是一样的思路删掉对应目录下的.lastUpdated文件和损坏文件然后强制刷新mvn -U idea:idea或者直接在IDEA里刷新Maven项目。4.2 命令行Maven和IDE的Maven版本不一致很多人的电脑上既有系统自带的Maven比如通过Homebrew安装的又有IDEA内置的Maven还有手动解压的Maven。三个Maven的版本可能都不一样而不同版本的Maven对插件下载和解析的细节有差异。我的建议是只留一个然后让IDEA和命令行都指向它。如果你用的是macOS通过Homebrew安装的Maven路径通常在/opt/homebrew/Cellar/maven/版本号再加上一个软链接到/opt/homebrew/bin/mvn。IDEA里配置Maven home path时直接指向这个路径即可。Windows上同理把解压目录路径填进IDEA。检查版本不要只看mvn -version还要看它的运行环境mvn -version输出信息里有一行Java version确认一下自己的JDK版本和Maven版本是否兼容。Maven 3.9.x需要JDK 8以上如果你用的是JDK 17甚至21建议直接上Maven 3.9.x别用太老的3.6版。4.3 IDEA打包jar时又踩坑spring-boot-maven-plugin的repackage目标插件能正常下载了但用mvn package打包时报错Execution repackage of goal org.springframework.boot:spring-boot-maven-plugin:... failed: Unable to find main class这个问题的本质是Spring Boot插件在打包时会去扫描项目的main类。如果项目里根本没有main方法或者main类没有被正确识别就会导致repackage失败。最常见的两种情况项目是一个纯库模块没有启动类。你不应该给这种模块配置spring-boot-maven-plugin或者至少要跳过repackageplugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId configuration skiptrue/skip /configuration /plugin项目有启动类但IDEA没有把它标记为“可运行”。检查一下pom.xml里的parent是不是spring-boot-starter-parent以及properties里有没有start-class配置。如果是多模块项目要在启动模块里显式指定mainClassconfiguration mainClasscom.example.demo.DemoApplication/mainClass /configuration这些都是打包环节才暴露出来的问题但根子往往还是对spring-boot-maven-plugin的能力边界理解不够——它不只是一个“下载了就行”的插件它参与打包生命周期。4.4 高发问题速查表报错现象可能原因推荐处理方式Plugin ... not found且本地仓库无该插件目录网络问题导致下载失败配置阿里云镜像后执行mvn -U刷新Plugin ... not found但本地目录有.lastUpdated文件曾经下载失败缓存了失败记录删除.lastUpdated文件后重新加载看到jar包但依赖还是报红jar包完整但缺少pom或jar损坏补pom文件或删除损坏jar后重新下载IDEA刷新正常但命令行报错两个Maven主目录不一致统一Maven home路径和settings.xml命令行正常但IDEA刷新报错IDEA内置Maven或settings路径不同在IDEA的Maven设置里指向自定义Maven打包时无main class模块是库模块或mainClass配置错误添加skiptrue/skip或指定mainClass这张表是我这几年排查同类问题的一个浓缩版遇到问题先在表里找找自己的场景能省不少时间。5. 避坑清单与个人经验5.1 settings.xml改完一定要做“语法验证”我见过一位同事在settings.xml里加了镜像配置后忘了闭合mirror标签。结果Maven启动时报了一个特别诡异的错Error parsing lifecycle processing instructions他排查了半天最后才发现是XML格式问题。这里有个小技巧修改完settings.xml之后先用命令行试试Maven还能不能正常读取mvn -v如果你的settings.xml有问题mvn -v大概率会报错或者输出异常。如果它正常说明XML格式没问题。之后再回到项目里刷新排除配置格式层的错误。5.2 版本号一定要“跟着走”别自己拍脑袋定Spring Boot 2.7和3.x之间不只是版本号的差异spring-boot-maven-plugin在这两个大版本之间的参数配置有区别。比如2.x时代的executions配置在3.x里仍然兼容但某些参数已经被标记为废弃。最稳妥的办法是使用spring-boot-starter-parent作为父工程让父工程统一管理插件版本不要手动声明插件版本。只有在你明确知道为什么需要单独指定版本的时候才去改它。5.3 学会看Maven的“下载源”日志很多人在排查时忽略了日志的价值。执行mvn clean compile -U -X会输出一大堆调试信息其中会包含Maven实际访问的仓库地址。如果你配置了阿里云镜像日志里应该能看到aliyunmeman to access ...这样的输出如果还是central或repo.maven.apache.org说明你的镜像配置根本没生效。顺着日志找到真正的访问地址基本上就找到了问题的根源。这一步比盲目删除仓库目录高效得多。5.4 使用仓库管理平台一劳永逸如果你不是一个人开发而是团队协作我强烈建议搭建一个Nexus或者用云端的私有仓库服务。把中央仓库的流量代理到私有仓库里团队所有成员的settings.xml统一配置指向私有仓库地址。这样不仅解决了not found问题还能统一管理公司内部的公共构件新同事入职后也不再需要各自折腾镜像配置。个人开发者如果嫌搭建仓库麻烦直接用阿里云镜像就够了。但切记settings.xml的配置最好自己保留一份备份因为每次重置电脑或者换新电脑都需要重新配置。6. 全网收集的各种疑难杂症补充6.1 “3.7版本的Maven找不到”最近有些帖子提到Maven 3.7下载。这里说明一下很多人在网上看到了“Maven 3.7”的说法实际是Maven 3.x系列的某个版本被误读为“3.7”。目前Apache Maven的版本线主要是3.6.x、3.8.x、3.9.x并没有官方发布的“3.7”版。如果你在某个地方下载到了标注为“3.7”的文件请谨慎使用优先从Apache官网或国内镜像站下载3.9.x版本。3.9.x是当前比较稳定、兼容性也好的版本线Spring Boot 3.x项目配合使用没问题。6.2 为什么说“镜像地址写错一个字符”就能坑一天阿里云镜像地址是https://maven.aliyun.com/repository/public有些人会写成http://maven.aliyun.com或者https://maven.aliyun.com/nexus/content/groups/public。前者是老版本的写法后者是更老的Nexus地址格式。虽然阿里云的Nexus兼容地址有些还能用但统一使用/repository/public是最不容易出错的。如果地址写错Maven请求时返回404最终报错也会是not found。所以排查这类问题时建议先在浏览器里打开镜像地址看看能不能正常访问。能打开说明网络通打不开说明地址有问题或者网络环境有问题。6.3 Maven配置环境变量的细节很多教程在讲解Maven安装时都会说“配置MAVEN_HOME环境变量”这在Windows上是必不可少的。但有一点他们没说配置了MAVEN_HOME之后还要确保PATH里加的是%MAVEN_HOME%\bin而不是%MAVEN_HOME%。如果加错了命令行会报mvn 不是内部或外部命令。macOS或Linux下一般是在~/.bash_profile或~/.zshrc里添加export M2_HOME/opt/maven export PATH$M2_HOME/bin:$PATH然后执行source ~/.zshrc让配置生效。注意M2_HOME和MAVEN_HOME这两个变量名在历史版本中都出现过新版Maven更推荐用MAVEN_HOME但配置M2_HOME通常也能被识别。为了保险起见两个都设置也行。6.4 IDEA里打包Maven项目为jar的完整流程很多新手在解决了not found问题之后紧接着会遇到“怎么把项目打成可运行的jar”这个问题。在IDEA右侧的Maven工具窗口展开Lifecycle节点双击package或者先clean再package。打包完成后jar包在项目target目录下。Spring Boot项目打的jar默认是可执行的直接java -jar target/xxx.jar就能启动。但要注意如果你的项目是非Spring Boot的普通Java项目打的jar默认不是可执行的因为它不会包含Main-Class的MANIFEST配置。这时候就需要手动指定maven-jar-plugin的mainClass。这也是很多人在IDE里打包之后跑不起来的常见原因。6.5 其他平台上的“not found”误解有些人在搜索时看到类似英文报错如unexpected status 404 not found或the model ... does not exist会误以为和这个Maven报错有关。其实那些通常是其他软件或服务的报错比如某些AI工具页面、游戏联机、或系统模块加载失败。不同的“not found”背后的机制完全不同搜索引擎把热词混在一起不代表它们相关。如果你只是Maven插件报错不要被一大堆其他领域的404内容带偏回到上面几节讲的方法里排查即可。7. 一些更底层的理解与技巧7.1 直接从仓库下载jar包手动安装手动把jar包放进本地仓库是一种备选方案虽然不那么优雅但在某些极端条件下确实管用。比如公司内网环境完全无法访问外网你可以让同事从他的电脑上拷一份.m2/repository目录里对应的插件目录过来放到你的本地仓库里。或者从阿里云仓库网页版直接搜索并下载插件jar包打开阿里云仓库搜索页面输入spring-boot-maven-plugin找到对应版本下载jar和pom两个文件手动放到~/.m2/repository/org/springframework/boot/spring-boot-maven-plugin/版本号/目录下执行mvn -U clean compile验证。这种方式能绕过Maven的网络下载机制但手动安装有一个隐患如果插件本身还有额外的依赖你只装一个主插件jar是不够的。所以我的建议是能用在线镜像解决的优先在线解决手动安装只是治标不治本的手段。7.2 Maven的传递依赖机制和“not found”的关系有时候你pom里没有直接声明spring-boot-maven-plugin但它也会出现在报错里这很可能是因为父工程中已经定义了它。Maven在解析插件时会先解析父工程的pom再从插件仓库下载所有在build节点里声明的插件。理解这一点你就能明白为什么“删掉pom里的插件声明”并不能解决报错——因为父工程里还有一份。这也是为什么排查时我总是强调“先看日志再看settings.xml最后看pom.xml”顺序反了很容易做无用功。mvn help:effective-pom这条命令可以输出当前项目的“有效pom”也就是把所有父工程继承下来的配置合并之后的结果。你可以用它来确认spring-boot-maven-plugin到底是在哪里声明的以及它的版本来自哪里。这是排查嵌套配置类问题的一大利器。7.3 慎用“全删除”式排错法网上很多教程的兜底方案都是“删除.m2目录”然后让你重新下载。这在某些情况下确实有效但它有一个巨大的副作用你本地所有依赖都会被清空项目一刷新Maven会重新下载可能高达几百MB甚至几GB的依赖。如果网络再不给力下载耗时半小时起步而且中途一旦断网又会留下新的.lastUpdated文件陷入死循环。除非你确定本地仓库已经彻底损坏否则我不建议用这个方案。优先做“定向清理”定位到报错的那个插件或依赖目录只删除里面的失败记录和损坏文件然后刷新。结语Plugin org.springframework.boot:spring-boot-maven-plugin not found这个报错表面上看是插件缺失实质上反映的是Maven构建链路的某个环节配置出了问题。项目本身的代码往往是无辜的。遇到它按顺序走一遍确认Maven主目录和settings.xml是否统一确认镜像仓库是否配置正确清理本地仓库失败缓存必要时显式声明插件版本。这套流程下来九成情况都能解决而且你还能顺带搞懂Maven仓库的工作机制以后遇到其他插件的not found也能举一反三。我个人的体会是构建工具层面的问题最忌讳乱试。网上的偏方很多但真正靠谱的思路永远是“看懂日志理清配置再动手”。把这几个步骤记牢了比收藏一百个帖子都有用。希望你下次再看到这个报错时嘴角带着一丝冷笑然后打开settings.xml从容地开始排查。