Eclipse

一,概述

Eclipse是着名的跨平台的自由软件,集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。

Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。 Eclipse是一种可扩展的开放源代码IDE。2001年11月,IBM公司捐出价值4,000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse平台。Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显着改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。

Eclipse框架的这种灵活性来源于其扩展点。它们是在XML中定义的已知接口,并充当插件的耦合点。扩展点的范围包括从用在常规表述过滤器中的简单字符串,到一个Java类的描述。任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse插件也可以遵从其它插件定义的扩展点。除了解由扩展点定义的接口外,插件不知道它们通过扩展点提供的服务将如何被使用。

利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。如果这些互相补充的独立工具采用Eclipse扩展点彼此连接,那么当我们用调试器逐一检查应用时,UML对话框可以突出显示我们正在关注的器件。事实上,由于Eclipse并不了解开发语言,所以无论Java语言调试器、C/C++调试器还是汇编调试器都是有效的,并可以在相同的框架内同时瞄准不同的进程或节点。

Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的Visual Studio和Sun 微系统公司的NetBeans平台。Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。Eclipse 联盟已经宣布将在2004年中期发布其3.0版软件。这是一款非常受欢迎的java开发工具,这国内的用户越来越多,实际上实用它java开发人员是最多的。缺点就是较复杂,对初学者来说,理解起来比较困难。

历史

Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。 2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。2007年6月,稳定版3.3发布。目前最新的[http://www.eclipse.org/downloads/ 稳定版本]为3.3.0。

架构

Eclipse的基础是富客户机平台Rich Client Platform, 即RCP)。RCP包括下列组件:

* 核心平台(启动Eclipse,运行插件) * OSGi(标准集束框架) * SWT(可移植构件工具包) * JFace(文件缓冲,文本处理,文本编辑器) * Eclipse工作台(即Workbench ,包含视图(views)、编辑器(editors)、视角(perspectives)、和向导(wizards))

Eclipse采用的技术是IBM公司开发的(SWT),这是一种基于Java的窗口组件,类似Java本身提供的AWTSwing窗口组件;不过IBM声称SWT比其他Java窗口组件更有效率。Eclipse的用户界面还使用了GUI中间层JFace,从而简化了基于SWT的应用程序的构建。

Eclipse的插件机制是轻型软件组件化架构。在富客户机平台上,Eclipse使用插件来提供所有的附加功能,例如支持Java以外的其他语言。 已有的分离的插件已经能够支持C/C++(CDT)、Perl、Ruby,Python、telnet和数据库开发。插件架构能够支持将任意的扩展加入到现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。

Eclipse计划

Eclipse由各种不同的计划组成。以下列出了部分计划,更完整全面的列表在[http://www.eclipse.org/projects/ 此](英文)。 *'Eclipse计划':本身包括Eclipse平台,Eclipse富客户端平台([http://www.eclipse.org/rcp/ RCP])和Java开发工具([http://www.eclipse.org/jdt/index.html JDT])。 *'Eclipse测试和性能工具平台'([http://www.eclipse.org/tptp/index.html TPTP]):提供一个允许软件开发者构建诸如测试调试、概况分析、基准评测等测试和性能工具的平台。 *'Eclipse Web工具平台计划' ([http://www.eclipse.org/webtools/index.html WTP]):用Java企业版Web应用程序开发工具来扩展Eclipse平台。它由以下部分组成:HTMLJavaScriptCSSJSPSQLXMLDTDXSDWSDL的源代码编辑器;XSD和WSDL的图形界面编辑器;Java企业版的“项目性质”(project nature)、建构器(builder)和模型(model),与一个Java企业版的导航(navigator);一个Web服务(Web service)向导和浏览器,还有一个WS-I测试工具;最后是数据库访问查询的工具与模型。 *'Eclipse商业智能报表工具计划'([http://www.eclipse.org/birt/ BIRT]):提供Web应用程序(特别是基于Java企业版的)的报表开发工具。 *'Eclipse可视化界面编辑器计划'([http://www.eclipse.org/ve/ VE]):一个Eclipse下创建图形用户界面代码生成器的框架。 *'Eclipse建模框架'([http://www.eclipse.org/emf/ EMF]):依据使用XMI描述的建模规格,生成结构化数据模型的工具和其他应用程序的代码。 *'图形化编辑器框架'([http://www.eclipse.org/gef/ GEF]):能让开发者采用一个现成的应用程序模型来轻松地创建富图形化编辑器。 *'UML2':Eclipse平台下的一个UML 2.0元模型的实现,用以支持建模工具的开发。 *'AspectJ':一种针对Java的面向侧面语言扩展。 *'Eclipse通讯框架'([http://www.eclipse.org/ecf/ ECF]):专注于在Eclipse平台上创建通讯应用程序的工作。 *'Eclipse数据工具平台计划'([http://www.eclipse.org/datatools/ DTP]) *'Eclipse设备驱动软件开发计划'([http://www.eclipse.org/dsdp/ DSDP]) *'C/C++开发工具计划'([http://www.eclipse.org/cdt CDT]):努力为Eclipse平台提供一个全功能C和C++的集成开发环境(IDE),它使用GCC作为编译器。 *'Eclipse平台COBOL集成开发环境子计划'([http://www.eclipse.org/cobol COBOL]):将构建一个Eclipse平台上的全功能COBOL集成开发环境。 *'并行工具平台'([http://eclipse.org/ptp PTP]):将开发一个对并行计算机架构下的一组工具进行集成的平行工具平台,而且这个平台是可移植的,可伸缩的并基于标准的。 *'嵌入式富客户端平台'([http://www.eclipse.org/ercp eRCP]):计划将Eclipse富客户端平台扩展到嵌入式设备上。这个平台主要是一个富客户端平台(RCP)组件子集的集合。它能让桌面环境下的应用程序模型能够大致同样地能运用在嵌入式设备上。

参见

*NetBeans 另一着名的开源多语言开发平台、IDE软件 *IntelliJ 另一着名的商业Java IDE *JBuilder Borland的商业Java IDE

外部链接

Eclipse的官方网站 上面提供相关的邮件列表、新闻组以及Eclipse软件及插件下载。 * 有关Eclipse 2.0 API的网站 * 有关Eclipse 2.1 API的网站 * 有关Eclipse 3.0 API的网站 * Eclipse插件网站 着名的Eclipse插件网站之一 * Eclipse的维基 * Acceleo, Eclipse的代码生成程序

参见

eclipse打开当前文件所在文件夹的两种方法 |

Eclipse插件系列——JSEclipse

Eclipse快捷键指南

Eclipse 平台入门 IBM

Eclipse 平台入门 集合

关于在Eclipse下使用Subversion教程

An introduction to Eclipse for Visual Studio users

我汉化了eclipse,但我觉得不踏实

Eclipse 3.2.1版本对应的多国语言包 http://download.eclipse.org/eclipse/downloads/drops/L-3.2.1_Language_Packs-200609210945/index.php Language Packs: 3.2.1