我正在开发一个包含多个组件的 Eclipse 插件。以前这是一个插件,一切都很好。但是,我最近将其分解为多个插件,它们是单个功能的一部分。
结构是功能中有一大堆插件。有一个包含通用代码和库的“核心”插件。每个其他插件都依赖于核心插件。
问题是当插件编译良好并且没有关于 plugin.xml、manifest 等的警告时,由于缺少类,插件在运行时无法工作。具体来说,我在核心插件中有 Google Guava,在运行时找不到 Guava jar 中的类。还有其他罐子,但这是第一个爆炸的罐子。
我尝试了几种方法来解决这个问题:
- 在核心项目中导出 Guava jar 中包含的包具有相同的结果:不起作用。
- 将 Guava jar 放入每个插件中确实有效,但由于额外的大小是不可取的。
- 根据我的搜索,我可以在我的 plugin.xml 中添加一个 <runtime> 标记,Eclipse 会立即忽略它,因为我有一个清单。我还没有找到向清单添加等效设置的方法。
唯一可行的方法是创建一个库插件,它基本上解压缩并合并所有 jar 文件。这里的问题是我有一堆随机文件。如果我想升级 jar 文件,重新生成项目很繁琐,而且我怀疑在搜索项目的 SVN 历史记录时会很清楚。
是否有另一种方法可以轻松地放入更新的 jar 文件并使其以最少的更改工作?