You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 10:50:34