0

问题是,在“导入”的包列表中没有看到这个包及其子包。当我导入所有 pde 包时,org.eclipse.pde.internal 无论如何都会变得可用。但我没有看到它的来源。我该如何管理这个包?

4

2 回答 2

1

以下是来自 Eclipse 社区的一些规则,它们可能会有所帮助:

  1. 包名称应与插件名称匹配。如果他们不从右边剥离。您寻找的代码应该在插件中org.eclipse.pde.internal(不存在)。剥离internal,你会得到一个现有的插件。

  2. OSGi 允许对其他插件隐藏插件 X 中的包。这个功能并没有真正使用。您仍然可以导入这些类,但 Eclipse 不会在代码完成中显示它们,并且您会收到警告。OSGi/bundle 类加载器有一个选项可以抛出NoClassDefFoundError,但该选项通常被禁用。MANIFEST.MF您可以在尝试从中导入的插件中找到导出列表。

    大多数未导出的包都在一个包下面internal,所以这是一个提示:不要使用这个代码。它不是官方 API 的一部分。它可以在 Eclipse 或插件的下一个版本中更改,并且没有人会关心您的代码是否中断(与官方 API 不同)。

当然,世界没有那么简单。这就是为什么不赞成使用内部代码但禁用类加载器选项的原因(= Eclipse 可以强制执行此行为,但他们不会)。

如果您认为某些内部 API 会很好用,请在https://bugs.eclipse.org/bugs/提交错误报告

于 2012-05-15T10:48:47.880 回答
0

我的同事解决了这个问题。

  1. org.eclipse.pde.internalorg.eclipse.pde.ui.

  2. Eclipse 3.7.2 根本没有 PDE 源。存储库中的相应目录为空。我降档到 3.7.0,现在可以了。

于 2012-05-15T11:05:04.590 回答