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

Eclipse中Maven可正常构建项目出现delete方法未定义错误

问题描述

在Eclipse中开发OSGI插件项目时,遇到以下编译错误:

The method delete(Sumti) is undefined for the type SumtiRepository  DeleteBridiTest.java

相关代码片段:

  • SumtiRepository.java:继承Spring Data的CrudRepository并自定义查询方法
@Repository
public interface SumtiRepository extends CrudRepository<Sumti, String> {
    Set<Sumti> findAllByRepresentation(String representation);
}
  • DeleteBridiTest.java:测试代码调用delete方法时触发错误
@Test
@DisplayName("- the id and representation are cleared from the repository")
void test1() {
    deleteBridi.apply(SUMTI_IS_A_THING);
    verify(deleteBridi.sumtiRepository).delete(SUMTI_IS_A_THING_SUMTI);
}

已知背景:

  • 按下F3可正常定位到org.springframework.data.repository.CrudRepository,该接口确实包含delete(T)方法
  • 项目采用eclipse-plugin打包方式,MANIFEST.MF中依赖了包裹后的Spring相关bundle
  • 目标平台已加载,Maven可正常构建,但Eclipse始终提示上述错误

解决方案

1. 补充Spring Data Commons的依赖声明

CrudRepository实际来自spring-data-commons包,但当前MANIFEST.MF的Require-Bundle中仅包含wrapped.org.springframework.data.spring-data-keyvalue,缺少对spring-data-commons的依赖。

在MANIFEST.MF的Require-Bundle节点中添加:

wrapped.org.springframework.data.spring-data-commons;bundle-version="3.5.1",

2. 刷新Eclipse项目依赖与类路径

  • 右键项目 → Maven → Update Project,勾选"Force Update of Snapshots/Releases"后确认
  • 右键项目 → Plug-in Tools → Update Classpath
  • 执行清理构建:顶部菜单Project → Clean,选择当前项目后运行

3. 验证目标平台的Spring Data Commons配置

确认目标平台中spring-data-commons的包裹状态:

  • 打开Window → Preferences → Plug-in Development → Target Platform
  • 选中当前目标平台点击Edit,检查spring-data-commons是否被正确转换为OSGI bundle

4. 排查类路径冲突

可能存在多版本CrudRepository导致Eclipse识别混乱:

  • 右键项目 → Build Path → Libraries,检查所有Spring相关依赖,确保仅保留目标平台指定的3.5.1版本spring-data-commons
  • 移除重复或版本冲突的依赖包

5. 安装Eclipse Spring Data插件支持

确保Eclipse具备Spring Data的语法识别能力:

  • 打开Help → Eclipse Marketplace,搜索安装"Spring Tools 4 (aka Spring IDE and Spring Tool Suite)"
  • 安装完成后重启Eclipse,重新检查项目

内容的提问来源于stack exchange,提问作者Árpád Magosányi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 12:00:56