简单自主管对于大多数单机情况来说已经足够了,并且特别适合于对作为目标的大型产品进行开发。但是,在某些情况下,需要更高级的解决方案:
由于外部插件不在工作区中,因此它们不是搜索作用域的一部分。于是,各种搜索(对于接口、类引用和实现等等)返回的结果将比期望的要少。Java 插件将只能看见作为工作区插件的类路径一部分的外部库。
与方案 1) 紧密联系,只有工作区插件必需的插件才能浏览外部插件的源代码。看不见其它插件。
类路径不稳定。如果对工作区中的大量相互独立的插件进行工作,则 PDE 将这些相关性表示为项目引用。比较起来,外部插件的相关性将使用 ECLIPSE_HOME 变量和外部 JAR 来表示。如果这些项目是使用资源库来共享的,则将强制其他开发者复制此补充内容,即使他们不需要您在工作区中具有的所有插件。
一个明显的结论就是,如果所有插件都在工作区中,则将解决所有这些缺点。搜索将按预期方式进行,所有类都可以看见源代码,类路径将统一(即,将只包含项目引用)。但是,总是以源代码形式从共享资源库中添加整个产品将大大降低下载和编译的速度。因此,引入了二进制项目这个概念。
二进制项目是不包含源代码的常规插件项目。因此,在编译期间将忽略它们,并将它们只用来解决上面所列示的缺点。使用 PDE 导入向导将外部插件导入工作区中。
在导入二进制项目之前,配置 PDE 以便进行二进制自主管是很重要的。因为我们将不对已解析的引用使用外部插件,所以应该在“首选项”中禁用它们。然后,使用文件 -> 导入... -> 外部插件和段来调用“导入”向导。
大多数时候,将接受第一页中的缺省值。缺省情况下,您将导入在“首选项”中设置的目标运行时工作台中的外部插件。另外,可以导入其它位置的插件。
当按了“下一步”时,向导将计算所有导入候选值,并使它们在复选框的列表中可用。您将选择的插件的实际设置取决于您自主管的方式。
如果您正在对尚不存在于目标平台中的插件进行工作,则您将想选择所有选项(全部选中)。如果列表上的某些插件已经以源代码形式存在于工作区中,则您将想按现有项目,然后按反转选择。这将导致选择尚未在工作区中的所有插件。
当按完成时,所选择的插件就将导入到工作区中。PDE 还将设置它们的类路径并将源归档文件与库相关联,以便您可以浏览或调试它们。
当工作区中具有大量二进制项目时,很难将它们与源项目区分开。PDE 提供了两种补充方法来处理此问题。它提供这样的标号修饰符:它将“二进制”图标覆盖层添加至常规项目图标,以明显地标记二进制项目。可以在“工作台 -> 标号修饰”下面的“首选项”中打开它。另外,PDE 还将二进制项目过滤器添加至“Java 浏览器”视图。当使用该过滤器时,它将隐藏二进制项目,并且只保留您正在使用的二进制项目。