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公共許可證