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

如何解决Spring Boot+Spring Batch Maven项目的Required Bundle错误?

解决Spring Boot/Spring Batch项目构建时的org.osgi.framework.BundleException(缺少org.slf4j.api依赖)

你碰到的是VS Code中Java插件与Maven插件的依赖冲突问题,核心是com.microsoft.java.maven.plugin模块找不到org.slf4j.api这个OSGI bundle,直接导致项目构建失败。下面是几个亲测有效的解决步骤:

解决方案

  • 清理VS Code Java工作区缓存
    这是最直接的修复方式,具体操作:

    1. 完全关闭VS Code
    2. 定位到日志里的工作区存储路径:c:\Users\Vaishali\AppData\Roaming\Code\User\workspaceStorage\f4e97db7acc29bd26ac0402f02ff6092\redhat.java\jdt_ws
    3. 删除整个jdt_ws文件夹
    4. 重新打开VS Code,等待Java插件重新初始化工作区后再尝试构建
  • 更新VS Code的Java相关插件
    打开VS Code的扩展面板,检查并更新以下插件到最新版本:

    • Language Support for Java(TM) by Red Hat(Red Hat Java插件)
    • Maven for Java(Microsoft官方提供的Maven插件)
      更新完成后重启VS Code,再执行构建操作
  • 确认项目的SLF4J依赖配置
    虽然Spring Boot的starter通常会自动引入SLF4J,但可以手动检查pom.xml确保依赖正确:

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <!-- 建议使用Spring Boot依赖管理中的版本,避免版本冲突 -->
    </dependency>
    

    执行mvn clean install清理本地仓库的旧依赖,然后重新构建项目

  • 重置VS Code Java插件配置
    如果上述方法都无效,可以尝试重置Java插件的配置:

    1. 打开VS Code设置(快捷键Ctrl+,)
    2. 搜索java.configuration.runtimes,点击编辑 in settings.json
    3. 暂时注释掉自定义的JDK配置,保存设置后重启VS Code
    4. 之后再根据项目需求重新配置合适的JDK版本

错误原因分析

从日志里的Unresolved requirement: Require-Bundle: org.slf4j.api可以看出,VS Code的Maven插件在OSGI容器启动时无法找到SLF4J的API包,大概率是以下原因导致:

  • VS Code Java工作区缓存损坏
  • Java/Maven插件版本不兼容
  • 本地Maven仓库中SLF4J依赖缺失或版本冲突

内容的提问来源于stack exchange,提问作者Nikhil Sambhus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 16:15:57