我们正在开发一个Eclipse插件,它被分成几个Eclipse项目。我们想要导出这些外部项目中定义的一些类(通过MANIFEST.MF中的Export-Package)。问题是Eclipse给出了一个错误“这个插件中不存在包xxx”。
举一个例子,我们假设插件是项目P1,这个插件使用在单独的Eclipse项目P2中定义的一些类。我们希望将P2与P1捆绑在一起,并通过P1的MANIFEST.MF导出一些P2类。
如果我生成一个jar文件(P2.jar)并在P1的构建路径中添加它,这是有效的,但如果我只是添加P2作为P1的依赖项,它就不起作用。
有什么建议是什么原因导致“这个插件中不存在包xxx”?
有关如何摆脱它的任何建议吗?
答案 0 :(得分:0)
将项目P2添加为P2的依赖项只需将P2的构建类(假设P2是Java项目)添加到P1的类路径中。这将允许P1编译,但会在运行时导致错误的行为。
因为您的项目P1是一个插件项目,所有依赖项必须通过清单编辑器的依赖项选项卡或通过您提到的jar文件添加。
所以唯一的解决方案是将P2项目转换为插件项目,然后让你的P1插件依赖它。这种只导出代码但不对ide做任何贡献的插件通常被称为库插件。现在,越来越多的Java库也以这种方式提供,让客户在Eclipse上下文中使用它们(例如log4j)。