1. 问题背景与现象描述
最近在开发一个SpringBoot Starter项目时遇到了一个相当棘手的问题。这个Starter项目本身开发测试都没问题,但当把它作为依赖引入到另一个SpringBoot项目中时,在IDEA 2025.2版本下执行maven install命令时,控制台一直报"程序包xxx.xxx.xx不存在"的错误。
这个错误表面看起来像是依赖没找到,但实际排查过程却相当曲折。我花了近两天时间才最终定位到问题根源——这与IDEA 2025.2版本对Maven命令执行顺序的调整有关。下面我会详细记录整个排查过程,希望能帮助遇到类似问题的开发者少走弯路。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 常规排查思路与尝试
2.1 检查依赖配置
首先,按照常规思路,我检查了以下几个方面:
- 依赖声明是否正确:确认pom.xml中依赖的groupId、artifactId和version都正确无误
- 本地仓库是否存在:到本地Maven仓库(~/.m2/repository)下查看对应的jar包是否已存在
- Maven配置:检查IDEA中Maven的配置路径是否正确,特别是settings.xml文件中的本地仓库路径
提示:可以通过在命令行执行
mvn dependency:tree来查看完整的依赖树,这比IDEA的依赖视图更可靠
2.2 包扫描注解检查
当确认依赖配置没问题后,我开始怀疑是Spring的组件扫描问题。因为即使依赖正确引入,如果Spring没扫描到对应包,也会报类找不到的错误。
我检查了主启动类上的注解:
java复制@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
尝试了两种解决方案:
- 添加scanBasePackages参数:
java复制@SpringBootApplication(scanBasePackages = "xxx.xxx.xx")
- 显式添加@ComponentScan注解:
