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

Maven构建Eclipse RCP插件源码未编译打包致ClassNotFound异常

Eclipse RCP 插件Maven构建不编译源码、不打包class问题修复

按以下顺序逐一排查配置,绝大多数同类问题都是前两项配置遗漏导致:

  • 补全build.properties的bin.includes配置
    你当前的bin.includes只声明了要打包3个文件夹,没有包含编译输出的根路径.,PDE/Tycho构建时会直接忽略所有编译后的class文件。修正后的配置如下:
    bin.includes = META-INF/,\
                   OSGI-INF/,\
                   resources/,\
                   .
    javacProjectSettings = true
    javacDefaultEncoding.. = UTF-8
    jars.compile.order = .
    source.. = src/
    output.. = bin/
    
  • 检查META-INF/MANIFEST.MF的类路径配置
    必须在Bundle-ClassPath中声明根目录.,否则OSGi运行时和构建工具都不会从插件根目录加载class,配置示例:
    Bundle-ClassPath: .
    
    如果后续引入第三方依赖jar,直接在后面逗号分隔追加即可,比如Bundle-ClassPath: .,lib/commons-lang3.jar
  • 校验Maven构建配置一致性
    确认新插件的pom.xml中packaging值为eclipse-plugin,且使用的tycho-maven-plugin版本和其他正常构建的插件完全一致,不要单独为新插件指定不同版本的Tycho插件,否则会出现source.<library>配置不识别的问题。
  • 排查源码目录匹配问题
    确认项目根目录下确实存在src/文件夹,且Java文件按包名层级存放于src目录下,不要直接将Java文件放在src根目录。
  • 临时关闭IDE配置复用参数测试
    可以先注释掉javacProjectSettings = true配置再构建,该参数会让构建优先读取Eclipse项目下.settings/org.eclipse.jdt.core.prefs里的编译配置,如果新项目没有生成该配置文件,会覆盖你在build.properties中写的源码路径、编码等参数,导致配置不生效。等构建正常后再开启该参数,保证本地IDE和命令行构建的编译规则一致。

修复后执行mvn clean package重新构建,构建完成后解压target目录下生成的插件jar包,确认根目录下存在对应源码编译生成的class文件,再启动RCP就不会抛出ClassNotFound异常。

内容的提问来源于stack exchange,提问作者Renganathan Selvaraju

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 02:48:21