M1 Mac上使用Quarkus生成项目后执行Maven Wrapper命令报错:/META-INF/maven/org.apache.maven.wrapper/maven-wrapper/pom.properties not found
M1 Mac上使用Quarkus生成项目后执行Maven Wrapper命令报错:/META-INF/maven/org.apache.maven.wrapper/maven-wrapper/pom.properties not found
我在M1 Mac上用Quarkus和Maven时碰到过完全一样的问题,这个坑主要是ARM64架构和Maven Wrapper的兼容性差异导致的,咱们来理清楚原因和解决办法:
可能的问题根源
- ARM64架构的资源路径解析差异:Quarkus默认生成的项目里的Maven Wrapper jar可能是基于x86环境打包的,M1的ARM64版本OpenJDK在读取jar内资源时,路径处理逻辑和x86 Java有细微区别——虽然文件确实存在,但wrapper的代码在ARM64环境下找不到它。
- Brew版OpenJDK的适配问题:你用Brew安装的OpenJDK 21是原生ARM64版本,它和Windows上的x86 Java在资源读取的底层实现上有差异,刚好触发了Maven Wrapper的这个路径bug。
解决办法
临时快速修复(你已经试过,但再明确下步骤)
既然重新生成Wrapper能解决问题,说明本地生成的Wrapper是适配ARM64环境的,执行以下任意一条命令即可:
- 如果本地已经安装了Maven,直接运行:
mvn wrapper:wrapper - 或者指定Wrapper和Maven版本生成(更稳妥):
mvn -N org.apache.maven.plugins:maven-wrapper-plugin:3.3.2:wrapper -Dmaven=3.9.11
生成完成后再运行./mvnw quarkus:dev,应该就能正常启动了。
长期预防方案
- 创建Quarkus项目时指定适配的Wrapper版本:在
quarkus create命令里加上--maven-wrapper-version=3.3.2参数,直接生成适配ARM64的Wrapper,避免后续报错:quarkus create app com.example:demo --maven-wrapper-version=3.3.2 - 确认OpenJDK是原生ARM64版本:执行
java -version,输出里有arm64就说明是原生版本,尽量不要用Rosetta转译的x86版本,减少兼容性问题。
验证步骤
重新生成Wrapper后,可以再执行以下命令确认文件路径没问题:
jar tf .mvn/wrapper/maven-wrapper.jar | grep pom.properties
如果能看到META-INF/maven/org.apache.maven.wrapper/maven-wrapper/pom.properties的输出,再运行./mvnw quarkus:dev就应该正常了。
内容来源于stack exchange
相关产品推荐
相关产品推荐

