Maven无法解析本地仓库中customers依赖包的编译问题求助
我有两个基于Spring Boot 3.2.2的Maven项目:customers和rest-client。本地环境配置为Maven 3.9.0、Oracle GraalVM 21+35.1。
rest-client依赖customers中的DTO(Java Record),已在pom.xml中添加以下依赖:
<dependency> <groupId>com.adityasamant.learnings</groupId> <artifactId>customers</artifactId> <version>2.0.0-SNAPSHOT</version> </dependency>
本地Maven仓库/Users/adityasamant/.m2/repository/com/adityasamant/learnings/customers/2.0.0-SNAPSHOT下已存在对应的jar包、pom文件,settings.xml也指定了该本地仓库路径。IntelliJ IDEA能正常解析依赖,但执行mvn clean install构建rest-client时,编译报错:
[INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:compile (default-compile) on project rest-client: Compilation failure: Compilation failure: [ERROR] /Users/adityasamant/Documents/work/code/spring/rest-client/src/main/java/com/adityasamant/learnings/restclient/controller/RestClientController.java:[3,50] package com.adityasamant.learnings.customers.model does not exist
已尝试以下操作但未解决问题:
- 在settings.xml中指定本地仓库路径
<localRepository>/Users/adityasamant/.m2/repository</localRepository> - 重命名
/Users/adityasamant/.m2/repository/com/adityasamant/learnings/customers/2.0.0-SNAPSHOT下的_remote.repositories文件
验证customers包的完整性:用jar命令检查本地仓库中的customers快照jar是否包含目标包。执行:
jar tf /Users/adityasamant/.m2/repository/com/adityasamant/learnings/customers/2.0.0-SNAPSHOT/customers-2.0.0-SNAPSHOT.jar查看输出中是否存在
com/adityasamant/learnings/customers/model/路径及对应的Record类文件。如果缺失,回到customers项目执行mvn clean install确保打包完整。确认Maven生效的settings配置:终端执行
mvn help:effective-settings,检查输出中的localRepository是否指向正确路径。终端Maven使用的settings可能和IDEA配置的不一致,导致依赖查找失败。清理并重新构建快照依赖:删除
/Users/adityasamant/.m2/repository/com/adityasamant/learnings/customers/2.0.0-SNAPSHOT下所有文件,回到customers项目执行mvn clean install,再重新构建rest-client项目。快照包可能存在损坏或不完整的情况。检查依赖scope配置:确保rest-client中customers依赖没有设置
provided、test等非compile的scope,默认compile即可,否则编译阶段无法加载依赖。统一编译器Java版本配置:检查rest-client的maven-compiler-plugin是否和customers项目使用相同的Java 21版本,配置示例:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>21</source> <target>21</target> <release>21</release> </configuration> </plugin>对齐IDEA与终端的Maven环境:执行
mvn -v查看终端的Maven版本和Java环境,对比IDEA设置中的Maven配置(File → Settings → Build, Execution, Deployment → Build Tools → Maven),确保两者使用相同的Maven安装目录和Java版本,避免环境不一致导致的问题。
内容的提问来源于stack exchange,提问作者Aditya Samant

