Eclipse

Eclipse是一款跨平台开源集成开发环境（IDE）。最初主要用来Java语言开发，目前亦有人通过插件使其作为C++、Python、PHP等其他语言的开发工具。

Eclipse的本身只是一个框架平台，但是众多插件的支持，使得Eclipse拥有较佳的灵活性，所以许多软件开发商以Eclipse为框架开发自己的IDE。

## 历史

Eclipse最初是由IBM公司开发的替代商业软件的下一代IDE开发环境，2001年11月贡献给开源社区，现在它由非营利软件供应商联盟Eclipse基金会（Eclipse Foundation）管理。2003年，Eclipse 3.0选择OSGi服务平台规范为运行时架构。2007年6月，稳定版3.3发布；2008年6月发布代号为Ganymede的3.4版；2009年6月发布代号为Galileo的3.5版；2010年6月发布代号为Helios的3.6版；2011年6月发布代号为Indigo的3.7版；2012年6月发布代号为Juno的4.2版；2013年6月发布代号为Kepler的4.3版；2014年6月发布代号为Luna的4.4版；2015年6月发布代号为Mars的4.5版。最新版为2020年12月的4.18版。

## 架构

Eclipse的基础是富客户机平台（即RCP）。RCP包括下列组件：

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

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

### 插件

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

Eclipse的设计思想是：一切皆插件。Eclipse核心很小，其它所有功能都以插件的形式附加于Eclipse核心之上。Eclipse基本内核包括：图形API（SWT/Jface），Java开发环境插件（JDT），插件开发环境（PDE）等。

框架的本质与极高的扩展性，使得厂商可以利用Eclipse作为平台开发各类IDE。甚至一些应用软件也是基于Eclipse的，如Oracle JDK自带的监控程序、Android SDK附带的设备监视工具DDMS。

## Eclipse计划

Eclipse由各种不同的计划组成。以下列出了部分计划，更完整全面的列表//www.eclipse.org/projects/ 在此（英文）。

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

## 版本

在Eclipse基金会及其项目和贡献者社区，对我们经常被称为协调调度版本同时发布，协同发布或发布列车的Eclipse。此页面提供当前和前几年现有同时发布的索引。

自2018-09发布以来，节奏从一个年度主要版本加上3个更新/服务版本变为带有滚动版本的13周周期。

发布名称｜平台版本｜发布｜链接

2019-03（当前版本）｜4.11｜2019年3月

2018-12｜4.10｜2018年12月19日｜ 维基 / 计划

2018-09｜4.9｜2018年9月19日｜ 维基 / 计划

从2006年起，Eclipse基金会每年都会安排//wiki.eclipse.org/Simultaneous_Release 同步发布（simultaneous release）。

Eclipse基金会及其社区项目和贡献者每年都会按照协调的时间表发布一个版本。此版本通常被称为Eclipse的同时发布。

协调发布，发布培训或年度版本。此页面提供了当前和以前年份的现有同步发布的索引。

每个版本通常在6月份发布，并在9月份（* .1），12月份（* .2）和3月份（* .3）发布后续更新版本。

在Neon(4.6)之前，每个发行版在9月份（SR1）和次年2月份（SR2）发布了两个服务版本。

代号｜平台版本｜项目｜主要版本发行日期｜SR1发行日期｜SR2发行日期

--｜o｜--｜2004年6月21日｜--｜--

--｜o｜--｜2005年6月28日｜--｜--

Callisto｜o｜//www.eclipse.org/callisto/callistoprojects.php Callisto projects｜2006年6月30日｜--｜--

Europa｜o｜//wiki.eclipse.org/index.php/Europa_Simultaneous_Release Europa projects｜2007年6月29日｜2007年9月28日｜2008年2月29日

Ganymede｜o｜//wiki.eclipse.org/index.php/Ganymede_Simultaneous_Release Ganymede projects｜2008年6月25日｜2008年9月24日｜2009年2月25日

Galileo｜o｜//wiki.eclipse.org/Galileo Galileo projects｜2009年6月24日｜2009年9月25日｜2010年2月26日

Helios｜o｜//wiki.eclipse.org/index.php/Helios Helios projects｜2010年6月23日｜2010年9月24日｜2011年2月25日

Indigo｜o｜//wiki.eclipse.org/Indigo Indigo projects｜2011年6月22日｜2011年9月23日｜2012年2月24日

Juno｜o｜//wiki.eclipse.org/Juno Juno projects｜2012年6月27日｜2012年9月28日｜2013年2月22日

Kepler｜o｜//wiki.eclipse.org/Kepler Kepler projects｜2013年6月26日｜2013年9月28日｜2014年2月28日

Luna｜o｜//wiki.eclipse.org/Luna Luna projects｜2014年6月25日｜2014年9月23日｜2015年2月25日

Mars｜o｜ Mars projects｜2015年6月24日｜2015年9月22日｜2016年2月24日

代号｜平台版本｜项目｜主要版本发行日期｜9月份 (、.1)｜12月份 (、.2)｜3月份 (、.3)

Neon｜o｜ Neon projects｜2016年6月22日｜2016年9月28日｜2016年12月21日｜2017年3月23日

Oxygen｜c｜ Oxygen projects｜2017年6月28日｜2017年9月27日｜2017年12月20日｜2018年3月21日

Photon｜p｜ Photon projects｜2018年6月27日｜2018年9月｜2018年12月｜2019年3月

l

## 参阅

- NetBeans 另一著名的开源多语言开发平台、IDE软件
- IntelliJ IDEA 另一著名的商业Java IDE
- WSAD IBM的商业Java IDE（WebSphare Application Developer）
- Visual J++ Microsoft的商业Java IDE
- JBuilder Borland的商业Java IDE
- g-Eclipse

## 基本资料

- 开发者：国际商业机器公司、Eclipse基金会
- 发行日期：1.0 / 2001年11月7日
- 软件版本周期：4.40.0
- 操作系统：跨平台: Linux、macOS、Solaris、Windows
- 类型：集成开发环境
- 编程语言：Java
- 状态：活跃
- 语言：多语言
- 平台：Java SE, SWT
- 许可协议：Eclipse公共许可证