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

多模块Maven子模块中PagingAndSortingRepository无法访问报错的解决方法

多模块Maven项目Spring Boot JPA类访问错误的排查方案

报错Cannot access org.springframework.data.repository.PagingAndSortingRepository本质是编译、运行阶段类路径无法加载到Spring Data Commons提供的核心类,按以下步骤逐一排查即可解决:

  • 校验子模块的依赖声明正确性
    • 确认Repository接口所在的子模块,已在自身pom文件中声明spring-boot-starter-data-jpa依赖,不要默认依赖父模块的传递能力。注意Maven父模块的<dependencyManagement>仅做版本统一管控,不会自动给子模块下发依赖,只有父模块直接写在<dependencies>标签下的依赖才会被所有子模块继承。
    • 检查子模块的依赖scope配置:不要把spring-data相关依赖的scope设为provided或test,否则本地编译阶段不会把对应类加入类路径,触发类访问错误。
    • 确认跨模块依赖的传递规则:如果写Repository的子模块被其他主启动模块依赖时,主模块在引入该子模块的依赖配置中,没有通过排除规则把子模块带有的spring-data-commons依赖过滤掉。
  • 排查依赖冲突与版本错配问题
    • 通过IDE的Maven依赖面板搜索spring-data-commons,确认该jar包被正确加载到类路径中——PagingAndSortingRepository类完全位于spring-data-commons包内,该jar缺失就会直接触发报错。
    • 检查所有引入的第三方依赖的排除配置,确认没有误将spring-data-commons通过<exclusions>标签过滤掉;同时校验Spring Boot与Spring Data的版本适配性:Spring Boot 2.x对应Spring Data 2021.x及更早分支,Spring Boot 3.x对应Spring Data 2022.x及以上分支,跨大版本手动指定spring-data版本会直接导致类不匹配。
  • 解决本地环境的缓存类问题
    • 清理本地损坏的Maven仓库依赖:在项目根目录执行mvn dependency:purge-local-repository -DreResolve=true -DactRecursively=true,重新拉取完整的spring-data相关jar包,避免本地jar包损坏导致的类加载失败。
    • 清理IDE缓存:通过编辑器的Invalidate Caches功能清除旧的类路径索引,重新导入Maven项目,避免IDE的类路径识别偏差导致的假报错。

内容的提问来源于stack exchange,提问作者Tohid Makari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 22:36:03