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

Eclipse插件开发运行时Maven依赖的gRPC类无法解析求助

解决方案

这个错误的核心是Eclipse插件基于OSGi容器运行,和普通Maven项目的类加载机制完全不同:普通Maven项目采用平级类路径加载所有依赖,而OSGi要求所有依赖必须是合法的OSGi Bundle,且在插件的运行时配置中明确声明。你可以按照以下步骤配置解决:

配置步骤

  • 首先确认MANIFEST.MF的依赖声明
    打开你插件项目根目录下的META-INF/MANIFEST.MF文件,在Require-Bundle字段中添加gRPC相关Bundle的依赖声明:
Require-Bundle: io.grpc.protobuf,
 io.grpc.stub,
 io.grpc.netty.shaded,
 org.apache.tomcat.annotations-api;resolution:=optional

如果你选择将依赖jar包直接嵌入插件内,就不需要配置Require-Bundle,转而配置Bundle-ClassPath字段:

Bundle-ClassPath: .,
 lib/grpc-netty-shaded-1.41.0.jar,
 lib/grpc-protobuf-1.41.0.jar,
 lib/grpc-stub-1.41.0.jar,
 lib/annotations-api-6.0.53.jar

同时在同目录的build.properties文件中,将依赖包加入构建输出配置:

bin.includes = META-INF/,
               .,
               plugin.xml,
               lib/
  • 修正Maven配置(如果你使用Tycho构建插件)
    在pom.xml中保留原有gRPC依赖的同时,给依赖添加<type>eclipse-plugin</type>属性,示例如下:
<dependency>
    <groupId>io.grpc</groupId>
    <artifactId>grpc-netty-shaded</artifactId>
    <version>1.41.0</version>
    <type>eclipse-plugin</type>
</dependency>
  • 检查运行配置
    打开Eclipse的Run Configurations面板,找到你正在使用的Eclipse Application运行项,切换到Plug-ins标签页,点击Add Required Plug-ins按钮,系统会自动勾选你插件所需的所有依赖Bundle,确认后再启动runtime-Eclipse即可。

常见注意事项

  • 不需要额外引入独立的Netty依赖,grpc-netty-shaded已经内置了重命名后的Netty相关类,避免和其他插件的Netty版本冲突
  • 配置完成后先执行Project > Clean清理项目缓存,再重新构建启动

内容的提问来源于stack exchange,提问作者Susee jeeva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:45:00