我正在开发一个包含多个组件的Eclipse插件。以前这是一个插件,一切都很好。但是,我最近将其分解为多个插件,这些插件是单个功能的一部分。
结构是该功能中有一大堆插件。有一个“核心”插件,包含公共代码和库。每个其他插件都依赖于核心插件。
问题是当插件编译良好且没有关于plugin.xml,manifest等的警告时,由于缺少类,插件在运行时不起作用。具体来说,我在核心插件中有Google Guava,并且在运行时无法找到Guava jar中的类。还有其他的罐子,但这是第一个爆炸的罐子。
我尝试了几种解决方法:
实际工作的唯一方法是创建一个库插件,它基本上解压缩并合并所有jar文件。这里的问题是我随机文件的混乱。如果我想升级一个jar文件,重新生成项目是很繁琐的,我怀疑在搜索项目的SVN历史记录时会很清楚。
是否有另一种方法可以实现这一目标,这样可以轻松放入更新的jar文件并使其以最小的更改工作?
答案 0 :(得分:1)
导出核心项目中Guava jar中包含的包具有相同的结果:不起作用。
您对此感到疑惑吗?
据我所知,在Eclipse中,Equinox是OSGi容器,在OSGi中,我们可以使用其他捆绑资源。
所以,这里确保你从正确的地方输出正确的东西。
其他包可能无法识别从核心包中导出的类(在所有子包中检查import-package)或者 在课堂上发生的事情。
尝试在清单中使用“Eclipse-Buddy policy”属性。它可能有效: - )
答案 1 :(得分:0)
我做的和工作的是:
注意: