我在Eclipse RCP 3.8.2 IDE中有一个工作区,其中包含 3 个插件和 2 个片段:
- P1 和 P2 插件
- BONECP1 片段(P1 是主机)
- BONECP2 片段(P2 是 HOST)
- MAIN 插件(需要 P1 和 P2)
在 IDE 中运行 MAIN 插件的生活很顺利......但是在导出 MAIN 插件(作为 Eclipse RCP 产品)时,片段 BONECP2 会导致此错误:
有任何想法吗?提示:
- 片段是克隆的(类路径库是相同的!)
- 有时(如果在 BONECP1 片段中更改了某些配置)BONECP2 片段无法找到已加载并存在于主机中的某些类。重新配置BONECP1片段(使其不再是单例/单例)解决了这个问题!!
- 如果再次尝试导致错误的操作,则找到之前未找到的类!(导出版本和 IDE 内部)
- 删除 BONECP2 片段的HOST MINIMUM VERSION解决了 EXPORT 错误...但是 BONECP2 片段找不到一些已加载并存在于 HOST 中的类!
我对片段的理解缺少什么?为什么 Eclipse 可以在 IDE 中使用此配置而不是在导出时?
这是 BONECP 片段的清单:
Manifest-Version: 1.0
Eclipse-BundleShape: jar
Bundle-ManifestVersion: 2
Bundle-Name: com.jolbox.bonecp
Bundle-SymbolicName: BONECP1;singleton:=true
Bundle-Version: 0.7.0.qualifier
Fragment-Host: P1;bundle-version="1.0.0.qualifier"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ClassPath: .,
libraries/bonecp-0.7.0.jar,
libraries/guava-r08.jar,
libraries/slf4j-api-1.6.1.jar,
libraries/slf4j-log4j12-1.6.1.jar
Export-Package: com.jolbox.bonecp