Spring Boot跨项目引入同包前缀类报包不存在,是否禁用同包前缀?
问题排查:Spring Boot跨项目引用报“package does not exist”错误
首先明确:完全允许不同项目使用相同的包前缀,你遇到的错误和包前缀无关,大概率是构建或依赖配置环节出了问题,以下是具体排查步骤:
确认项目B的构建结果
- 执行
mvn clean install完成项目B的构建,确保jar包已安装到本地Maven仓库 - 检查项目B的pom.xml,
<packaging>必须为jar(默认值,若设为pom则无法作为依赖引用) - 解压项目B target目录下的jar包,确认
com/abc/core/dto路径下存在编译后的class文件,保证类已被正确编译打包
- 执行
验证项目A的依赖配置
- 核对项目A的pom.xml中,项目B的依赖配置是否完全匹配:Group ID、Artifact ID、版本号必须和项目B的pom一致,示例配置如下:
<dependency> <groupId>com.abc</groupId> <artifactId>your-project-b-artifact-id</artifactId> <version>x.y.z</version> </dependency> - 执行
mvn dependency:tree命令,查看依赖树中是否包含项目B的jar包,确认依赖未被意外排除
- 核对项目A的pom.xml中,项目B的依赖配置是否完全匹配:Group ID、Artifact ID、版本号必须和项目B的pom一致,示例配置如下:
清理IDE缓存
- 若仅IDE中报错,尝试清理缓存并重启:IntelliJ IDEA用
File -> Invalidate Caches...,Eclipse用Project -> Clean,之后重新导入Maven项目
- 若仅IDE中报错,尝试清理缓存并重启:IntelliJ IDEA用
检查类的访问权限
- 项目B中
com.abc.core.dto下的目标类必须是public修饰,默认访问权限(无修饰符)的类无法跨项目访问
- 项目B中
内容的提问来源于stack exchange,提问作者nixad g.
相关产品推荐
相关产品推荐

