Eclipse是一个平台,它是构建集成web与桌面应用程序的开发工具。在设计时,平台并不给最终用户提供大量的功能。平台推崇基于插件模型(plug-in model)的可集成的快速开发。web
Eclipse提供了一个通用的用户界面模型处理工具。它被设计成能够运行在多种操做系统之上,同时提供与每一个底层操做系统紧密集成。编程
Eclipse的核心是一个动态发现、加载和运行插件的体系结构。该平台处理查找和运行右侧代码的流程。平台界面提供了一个标准的用户导航模型。插件则专一于少数量的任务上。是哪些类型的任务呢?定义,测试,动画,发布,编译,调试,生成图表……一切只要你想的到。后端
开放的体系结构服务器
Eclipse平台定义一个开放的体系结构,每一个插件的开发团队能够专一于他们擅长的领域。如,让仓库专家构建后端,易用性专家构建用户端工具。若是平台被设计的很好,能够添加剧要的新特性和整合层次而不影响其余工具的使用。架构
从最终用户的角度来看,Eclipse平台使用集成了工具的通用工做台模型。你开发的工具可使用定义良好的钩子插进工做台中,这个钩子称为扩展点。框架
平台自身是创建在插件层次上的,每个插件定义了低层次插件的扩展点的扩展,进而为进一步的定制定义本身的扩展点。这样的扩展模型容许插件开发者在基本工具平台中添加各类不一样的功能。每一个工具生产出来的工件(artifact),如文件和其它数据,经过一个通用的平台资源模型来进行协调。工具
(译者注:扩展点是定义,扩展是实现,相似于接口和实现类。)开发工具
平台提供给用户一个使用工具的通用方式,并提供对他们用插件建立的资源进行综合管理。测试
插件开发人员也能够从这个架构中获益。平台管理着由不一样运行时环境如不一样的操做系统或工做组服务器运行环境所带来的复杂性。插件开发人员能够专一于他们特定的任务而不用担忧这些集成问题。动画
平台结构
Eclipse平台自己就是子系统构成的,由一个或多个插件实现。这些子系统在一个小型的运行时引擎之上建造。下图是一个简单的描绘。
组成这个子系统的插件为给平台添加行为,定义了多个扩展点。下表描述了平台的主要运行时组件,这些组件由一个或多个插件来实现。
平台运行时(Platform runtime) |
定义扩展点和插件模型。动态发现插件和在平台注册表中维护插件及其扩展点的信息。当须要平台响应用户操做时,插件被启动。运行时使用OSGI框架实现。 |
资源管理(Resource Management(workspace)) |
定义资源建立和管理的API。这些资源包括项目、文件和文件夹,由工具生成并保存在文件系统中。 |
工做台界面(Workbench UI) |
实现了导航平台的用户驾驶舱。它为添加UI组件定义了扩展点,如视图或菜单的动做(actions)。为建立用户界面提供了附件的工具包(JFace 和 SWT)。UI服务是结构化的,所以UI插件的子集能够被用来建立富客户端的应用程序,独立于资源管理和workspace模型。以IDE为中心的插件为导航和操做资源定义了附加的功能。 |
帮助系统(Help system) |
像浏览书本同样,为插件定义扩展点,能够提供帮助或者其它的文档。 |
团队支持(Team support) |
为管理和版本化资源,定义了一个团队编程模型。 |
调试支持(Debug support) |
为构建调试器和启动器,定义了一个语言独立的调试模型和UI类。 |
其它工具(Other utilities) |
其它提供功能性的工具性插件,好比资源的搜索和比较,使用XML配置文件执行构建,以及从服务器动态升级平台。 |
盒子以外
离开了web,基础平台仅仅只是一个IDE,没有什么特别的。
它是一个肯定平台最终功能的插件。这就是为何Eclipse SDK与附加的插件绑定在一块儿,以加强SDK的功能。
你的插件能够为编辑和操做额外的资源类型提供支持,如Java文件,C程序,Work文档,HTML网页和JSP文件。