问题是,这个包及其子包在“import”包列表中看不到。当我导入所有pde包时,org.eclipse.pde.internal无论如何都会变得可用。但我没有看到它的来源。我该如何管理这个包?
答案 0 :(得分:1)
以下是Eclipse社区的一些可能有所帮助的规则:
包名称应与插件名称匹配。如果他们不从右边剥离。您寻找的代码应该在插件org.eclipse.pde.internal
中(不存在)。剥离internal
并获得现有插件。
OSGi允许从其他插件隐藏插件X中的包。此功能并未真正使用。您仍然可以导入类,但Eclipse不会在代码完成时显示它们,您将收到警告。 OSGi / bundle类加载器有一个选项可以抛出NoClassDefFoundError
,但通常会禁用该选项。您可以在尝试导入的插件的MANIFEST.MF
中找到导出列表。
大多数未导出的软件包位于软件包internal
下面,因此这是一个提示:不要使用此代码。它不是官方API的一部分。它可以在下一版本的Eclipse或插件中进行更改,如果您的代码中断,没有人会关心(与官方API不同)。
当然,世界并非那么简单。这就是为什么使用内部代码不受欢迎但是类加载器选项被禁用(= Eclipse可以强制执行此行为,但他们没有)。
如果您认为某些内部API很适合使用,请在https://bugs.eclipse.org/bugs/
提交错误报告答案 1 :(得分:0)
我的同事解决了这个问题。
org.eclipse.pde.internal
位于org.eclipse.pde.ui
。
Eclipse 3.7.2根本没有PDE源。存储库中的适当目录为空。我降低到3.7.0现在没关系。