使用quarkus dev报错FileNotFoundException:请求不存在的Maven版本URL
问题原因及解决方案
核心问题
你遇到的错误是因为项目里的Maven Wrapper配置文件版本号冲突:请求的URL中,路径是apache-maven/3.8.1/,但文件名却是apache-maven-3.9.0-bin.zip,这个URL本身不存在,自然会下载失败。
为什么不同命令表现有差异
quarkus dev/quarkus update:Quarkus CLI默认优先使用项目内的Maven Wrapper(mvnw)执行构建、更新操作,触发了Wrapper的下载流程,暴露了配置错误。mvn quarkus:dev:直接调用系统中安装的Maven,跳过了Wrapper的使用,所以能正常运行。quarkus version:仅查询CLI版本,不涉及构建操作,不会触发Wrapper逻辑,因此没问题。
解决办法
修正Wrapper配置文件
打开项目根目录下的.mvn/wrapper/maven-wrapper.properties,找到distributionUrl属性,统一版本号:- 若使用Maven 3.9.0,修改为:
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.0/apache-maven-3.9.0-bin.zip - 若使用Maven 3.8.1,修改为:
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.1/apache-maven-3.8.1-bin.zip
- 若使用Maven 3.9.0,修改为:
让Quarkus CLI直接使用系统Maven
- 临时方案:执行命令时添加
--no-wrapper参数,比如quarkus dev --no-wrapper、quarkus update --no-wrapper。 - 永久方案:设置环境变量
QUARKUS_MAVEN_WRAPPER=false,之后Quarkus CLI会默认跳过Wrapper,直接调用系统安装的Maven。
- 临时方案:执行命令时添加
重新生成或移除Wrapper
- 删除项目里的
.mvn目录和mvnw、mvnw.cmd文件,Quarkus CLI会自动使用系统Maven。 - 或在项目根目录执行命令重新生成正确的Wrapper:
mvn wrapper:wrapper -Dmaven=3.9.0(替换为你需要的版本号)。
- 删除项目里的
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

