Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其自己而言,它只是一个框架和一组服务,用于经过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。
虽然大多数用户很乐于将 Eclipse 看成 Java IDE 来使用,但 Eclipse 的目标不只限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对但愿扩展 Eclipse 的软件开发人员,由于它容许他们构建与 Eclipse 环境无缝集成的工具。因为 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,全部工具开发人员都具备同等的发挥场所。(
中国软件工程网)
这种平等和一致性并不只限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C++、COBOL 和 Eiffel 等编程语言的插件已经可用,或预计会推出。Eclipse 框架还可用来做为与软件开发无关的其余应用程序类型的基础,好比内容管理系统。
基于 Eclipse 的应用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服务和
数据库访问的支持。(
中国软件工程网)
开放源代码软件是这样一种软件,它们在发布时附带了旨在确保将某些权利授予用户的许可证。固然,最明显的权利就是源代码必须可用,以便用户能自由地修改和再分发该软件。这种用户权利的保护是经过一种称为
copyleft的策略来完成的:软件许可证主张版权保护,除非明确授予用户这样的权利,不然用户不得分发该软件。copyleft 还要求同一许可证涵盖任何被再分发的软件。这实际上倒置了版权的目的——使用版权来授予用户权利,而不是为软件的开发者保留版权——copyleft 常常被描述为“保留全部版权”。
曾经四处蔓延的对开放源代码软件的许多恐惧、担心和疑虑,都与某些 copyleft 许可证的所谓“病毒”性质有关——若是使用开放源代码软件做为您开发的程序的一部分,您将失去本身的知识产权,由于该许可证将“传染”您开发的专有部分。换句话说,该许可证可能要求与开放源代码软件一块儿打包的全部软件,都必须在相同的许可证之下发布。虽然这对最著名的 copyleft 许可证(即 GNU 通用公共许可证,例如 Linux 就是在该许可证之下发布的)来讲多是事实,当时还有其余许可证在商业化和社区考虑之间提供了较好的平衡。(
中国软件工程网)
开放源代码计划(Open Software Initiative)是一家非营利机构,它明肯定义了开放源代码的含义及知足其标准的认证许可证。Eclipse 是在 OSI 承认的通用公共许可证(CPL)1.0 版之下被授予许可证的。
为 Eclipse 建立插件或将 Eclipse 用做软件开发应用程序基础的开发人员,须要发布他们在 CPL 下使用或修改的任何 Eclipse 代码,可是他们能够自由决定本身添加的代码的许可证授予方式。与出自 Eclipse 的软件一块儿打包的专有代码不须要做为开放源代码来授予许可证,该源代码也不须要提供给用户。
尽管大多数开发人员不会使用 Eclipse 来开发插件,或建立基于 Eclipse 的新产品,可是 Eclipse 的开放源代码性质所意味的,并不仅是它使得 Eclipse 免费可用(尽管便于商业化的许可证意味着插件可能要花钱)。开放源代码鼓励创新,并激励开发人员(甚至是商业开发人员)为公共开放源代码库贡献代码。对此存在许多缘由,不过最本质的缘由或许是为这个项目做贡献的开发人员越多,这个项目就会变得对每一个人都越宝贵。随着这个项目变得更加有用,更多的开发人员将会使用它,并围绕它造成一个社区,就像那些围绕 Apache 和 Linux 造成的社区同样。
Eclipse.org 协会管理和指导 Eclipse 正在进行中的开发。在听说 IBM 花了 4000 万美圆开发 Eclipse,并把它做为一个开放源代码项目发布以后,Eclipse.org 协会吸取了许多软件工具提供商,包括 Borland、Merant、Rational、RedHat、SuSE、TogetherSoft 和 QNX。从那之后还有其余公司相继加入,包括 Hewlett Packard、Fujitsu、Sybase。这些公司分别向理事会派了一名表明,这个理事会负责肯定 Eclipse 项目的方向和范围。
在最高层,项目管理委员会(Project Management Committee,PMC)管理着 Eclipse 项目。这个项目被划分为多个子项目,每一个子项目都有一名负责人。大型子项目又被划分为组,每一个组也有一名负责人。目前,这其中的大多数管理角色都由最初开发 Eclipse 的 IBM 子公司 Object Technology International (OTI)的人担任,可是做为一个开放源代码的项目,它欢迎任何人的参与。任何特定部门的职责是经过该部门对项目的贡献来争取的。
在第一次打开 Eclipse 时,首先看到的是下面的欢迎屏幕:
图 1. Eclipse 工做台
Eclipse 工做台由几个称为
视图(view)的窗格组成,好比左上角的 Navigator 视图。窗格的集合称为
透视图(perspective)。默认的透视图是 Resource 透视图,它是一个基本的通用视图集,用于管理项目以及查看和编辑项目中的文件。
Navigator 视图容许您建立、选择和删除项目。Navigator 右侧的窗格是 编辑器区域。取决于 Navigator 中选定的文档类型,一个适当的编辑器窗口将在这里打开。若是 Eclipse 没有注册用于某特定文档类型(例如,Windows 系统上的
.doc
文件)的适当编辑器,Eclipse 将设法使用外部编辑器来打开该文档。
Navigator 下面的 Outline 视图在编辑器中显示文档的大纲;这个大纲的准确性取决于编辑器和文档的类型;对于 Java 源文件,该大纲将显示全部已声明的类、属性和方法。
Tasks 视图收集关于您正在操做的项目的信息;这能够是 Eclipse 生成的信息,好比编译错误,也能够是您手动添加的任务。
该工做台的大多数其余特性,好比菜单和工具栏,都应该和其余那些熟悉的应用程序相似。一个便利的特性就是不一样透视图的快捷方式工具栏,它显示在屏幕的左端;这些特性随上下文和历史的不一样而有显著差异。Eclipse 还附带了一个健壮的帮助系统,其中包括 Eclipse 工做台以及所包括的插件(好比 Java 开发工具)的用户指南。至少浏览一遍这个帮助系统是值得的,这样能够看到有哪些可用的选项,同时也可更好地理解 Eclipse 的工做流程。
为继续这个短暂的 Eclipse 之旅,咱们将在 Navigator 中建立一个项目。右键单击 Navigator 视图,而后选择 New=>Project。当 New Project 对话框出现时,选择左面的 Java。标准 Eclipse 只有一种 Java 项目类型,名为“Java Project”。若是安装了插件来提供 JSP 和 servlet 支持,咱们会从这里看到一个用于 Web 应用程序的附加选项。眼下,请选择 Java Project,在提示项目名称时输入“Hello”,而后按 Finish。
接下来,咱们将检查一下 Java 透视图。取决于您喜欢的屏幕管理方式,您能够经过选择 Window=>Open Perspective=>Java来改变当前窗口中的透视图,也能够经过选择 Window=>New Window,而后再选择这个新的透视图,从而打开一个新的窗口。
正如您可能预期的那样,Java 透视图包含一组更适合于 Java 开发的视图。其中之一就是左上角的视图,它是一个包含各类 Java 包、类、jar 和其余文件的层次结构。这个视图称为 Package Explorer。还要注意主菜单已经展开了——而且出现了两个新的菜单项:Source 和 Refactor。
Eclipse 平台是一个具备一组强大服务的框架,这些服务支持插件,好比 JDT 和插件开发环境(PDE)。它由几个主要的部分构成:平台运行库、工做区、工做台、团队支持和帮助。
图 2. Eclipse 平台体系结构
平台
平台运行库是内核,它在启动时检查已安装了哪些插件,并建立关于它们的注册表信息。为下降启动时间和资源使用,它在实际须要任何插件时才加载该插件。除了内核外,其余每样东西都是做为插件来实现的。
工做区
工做区是负责管理用户资源的插件。这包括用户建立的项目、那些项目中的文件,以及文件变动和其余资源。工做区还负责通知其余插件关于资源变动的信息,好比文件建立、删除或更改。
工做台
工做台为 Eclipse 提供用户界面。它是使用标准窗口工具包(SWT)和一个更高级的 API(JFace)来构建的;SWT 是 Java 的 Swing/AWT GUI API 的非标准替代者,JFace 则创建在 SWT 基础上,提供用户界面组件。
SWT 已被证实是 Eclipse 最具争议的部分。SWT 比 Swing 或 SWT 更紧密地映射到底层操做系统的本机图形功能,这不只使得 SWT 更快速,并且使得 Java 程序具备更像本机应用程序的外观和感受。使用这个新的 GUI API可能会限制 Eclipse 工做台的可移植性,不过针对大多数流行操做系统的 SWT 移植版本已经可用。
Eclipse 对 SWT 的使用只会影响 Eclipse 自身的可移植性——使用 Eclipse 构建的任何 Java 应用程序都不会受到影响,除非它们使用 SWT 而不是使用 Swing/AWT。
团队支持
团队支持组件负责提供版本控制和配置管理支持。它根据须要添加视图,以容许用户与所使用的任何版本控制系统(若是有的话)交互。大多数插件都不须要与团队支持组件交互,除非它们提供版本控制服务。
帮助
帮助组件具备与 Eclipse 平台自己至关的可扩展能力。与插件向 Eclipse 添加功能相同,帮助提供一个附加的导航结构,容许工具以 HTML 文件的形式添加文档。
围绕 Eclipse 的开发正处于关键阶段。主要软件工具提供商都参与进来了,而且开放源代码 Eclipse 插件项目的数量正在与日俱增。
可移植、可扩展、开放源代码的框架并非个新思想(您会想起 Emacs),可是因为它成熟、健壮和优雅的设计,Eclipse 带来了全新的动力。IBM 价值 4000 万美圆的世界级软件在开放源代码领域的发布,给业界带来了久违的震撼。