Eclipse插件成果研究
副标题#e#
在整个 Java™ 开拓人员社区,Eclipse 因为行业领先的 Java Development Tools (JDT) 而广为人知。但 Eclipse 构建目标在于促进插件的利用,并且在这一方面,它得到了惊人的乐成。摸索已经构建到 Eclipse 插件中的一些本领,好比利用 Ruby 等其他语言编程,可能是利用 OpenLaszlo 等情况构建交互式多媒体。
简介
越来越多的 Java 开拓人员已经开始浏览 Eclipse 的 JDT 提供的出产率和质量收益。Eclipse 对编写 Java 代码的支持真是棒极了。它的 Java 编辑器提供了语法高亮显示、名目化、折叠、内容帮助、代码模板等很多成果,我们大大都人都无法想像分开它们会怎么样。它不绝增长的可用重构和代码生乐成能荟萃答允您在更高的级别上操纵代码,并自动化凡是的代码麋集型任务和易错任务。并且,在开拓完代码并利用 JDT 对编写和执行 JUnit 测试的内置支持对代码举办单位测试之后,可以利用 Eclipse 的一流 Java 调试器调试在运行时碰着的任何问题。
除了 JDT 之外,Eclipse SDK —— 最风行的 Eclipse.org 下载 —— 还包括 Plug-in Development Environment (PDE)。PDE 利用特定成果扩展了 JDT 以构建 Eclipse 插件 —— 基于 Eclipse 的应用措施的根基结构块。事实上,利用由 Eclipse 自己提供的东西可以或许逾越 Java 开拓,可扩揭示有 Eclipse 应用措施,可能甚至建设全新的应用措施。
所有插件的汇总
假如曾经利用过 Eclipse,大概会碰着术语 “插件”。在架构上,Eclipse 由一个小运行时层组成,个中包括很多成果模块或 Eclipse 术语中所谓的 “插件”。插件是在 Eclipse 应用措施中提供所有成果的组件。它们通过其 API 一起协作来交付最终功效。在 Eclipse 中,甚至最基本的成果,好比查找和启动安装的插件,都封装在插件中。
为了扩揭示有 Eclipse 成果或在其长举办构建,插件将详细的扩展 孝敬给由其他插件袒露的扩展点。凡是,插件专注于特定区域的责任,并通过一个或多个扩展点的方法将其他责任指派给其他插件。譬喻,一个插件答允您可视地并行较量两个文件的内容,但它不会体贴如何读取这些文件甚至如何表明这些文件的布局;这是其他插件的事情。较量两个文件时,该插件首先查抄是否有另一个插件可以表明这些文件的布局。假如找到一个,它就会向找到的插件询问有关文件布局的信息,并在较量进程中利用该信息。
可以看到,模块化架构为 Eclipse 提供了庞大的机动性,并提供了一个可以支持原设计者没有预推测的大量应用措施的平台。
安装 Eclipse 插件
上网查找新插件时,大概会发明它们以可下载档案 —— zip 或 JAR 文件的形式存在。插件的宣布者应该提供安装说明。凡是,以 JAR 文件宣布的独立插件可以直接生存到 Eclipse 安装(eclipse 目次)中的插件目次中。在一些环境下,多个插件大概打包在一起,档案文件大概将它们放在一个插件目次下。假如是这种环境,则必需将档案文件解压到您的 eclipse 目次中。在安装新插件之后,必需从头启动事情台以便变动生效。
留意:从头启动 Eclipse 事情台 (eclipse -clean) 时,确保将 -clean 添加到呼吁行中。这将确保您的 Eclipse 插件设置是最新的。
多个插件还可以宣布为一个特性(feature)。Eclipse Update Manager 是事情台的一部门,它利用特性观念作为分组相关插件的方法,以便于安装和设置。在这种环境下,您将留意到的惟一不同就是宣布的档案文件中包括除插件目次之外的特性目次。
Update Manager 是一个成果强大的东西,用于打点 Eclipse 设置并使之保持最新。有关如何利用 Update Manager 的具体信息,请参阅 Eclipse Help 中的 Workbench User Guide > Tasks > Updating features with the update manager。
万能 IDE
最初刊行时,Eclipse 被吹嘘为一个万能的东西集成平台,并附带有一构成果富厚的 Java 开拓东西。它的愿望是开拓东西行业领头人可以或许回收 Eclipse 作为最佳血统东西的底层平台。
最终,Eclipse 已经推行了它的理睬。可用 Eclipse IDE 插件和甚至整个开拓套件的数目在不绝增长。Eclipse Foundation 独自监视了很多用其他编程语言僻静台扩展原始 Eclipse IDE 的项目标开拓。越来越多的公司开始插手 Eclipse Foundation,越来越多的新项目被建设和孝敬。
Enterprise Java 和 Web Application Development
固然开拓 J2EE 应用措施凡是需要 Java 编程,但也需要其他技能。因此,构建企业级软件需要全新的东西集。
Eclipse Foundation 本身打点 Web Tools Project (WTP),后者试图提供用于开拓 J2EE Web 应用措施的东西和东西框架。固然很多基于 Eclipse 的 J2EE 开拓套件在贸易市场上呈现的时间并不长,但 WTP 相对而言仍是一个新来者。它实际上是以下三个子项目标组合:Web Standard Tools (WST)、J2EE Standard Tools (JST) 和 Java Server Faces (JSF) Tools。
#p#分页标题#e#
WST 为很多 Web 尺度提供了成果富厚的编辑器,这些尺度有 HTML、XML、CSS、JavaScript、SVG、XML Schema、XSLT、SOAP、WSDL、SQL,等等。它还支持在一系列 HTTP 处事器上陈设和监控 Web 工件。
JST 扩展了该成果荟萃,支持成果完整的多层 J2EE 应用措施的开拓。利用 JST,可以建设利用 JSP 和 servlet 的动态 Web 应用措施,以及 EJB 组件和 Web 处事。还可以编辑所有组件的陈设描写符,并在很多受支持的 J2EE 应用措施处事器上的事情台中直接测试运行您的应用措施。
JSF Tools 旨在添加对开拓基于 JSF 的 Web 应用措施的支持。它是只具有一个已宣布里程碑的新子项目,但已经打算将其包罗在 WTP V1.5 刊行版中。
很多贸易软件开拓套件可用于支持 J2EE 应用措施的建设。IBM® Rational® Application Developer for WebSphere® 包围了企业软件开产生命周期的几个阶段,个中包罗 J2EE 应用措施的设计、开拓、测试、陈设和设置打点。
为了支持动态 Web 应用措施的建设,BEA 的 Workshop Studio 操作其正在申请专利的 AppXRay 技能,来跟踪和验证应用措施的状态。它还包罗 Hibernate-to-EJB3 ORM 映射事情台和对 Spring 框架的支持。
MyEclipse IDE 由 Genuitec 开拓,是大型开拓套件的低本钱备选项。它提供了一组完整的针对开放源码技能(好比 Spring、Hibernate、Tapestry 和 Struts)的 J2EE 开拓东西。
#p#副标题#e#
桌面应用措施开拓
Java 在桌面上的再起在极洪流平上归结于 Eclipse。在还没有成为独有的 Java 桌面平台时,Eclipse 好像已经促进了 Java 平台自己的改造,并致力于对 Java 作为桌面应用措施可视平台的从头评估。
固然可以(事实上是很多人的首选)直接在 Java 中建设接口,但利用符合的可视 UI 开拓东西可以得到大的出产率收益。Eclipse 空间在一段时间里(至少不是作为 Open-Source 项目时)不存在这种东西的事实被很多人认为是在更大比例上回收 Eclipse 作为富客户机应用措施平台的一个障碍。
Visual Editor 项目标建设目标在于为 GUI 构建器提供框架,但还包罗了成果完整的 SWT 和 Swing UI 构建器。Visual Editor 答允措施员利用风行的拖放技能快速有效地建设基于 SWT 和 Swing 的用户接口。尽量这种要领将手工编程从 UI 开拓中解放出来,但措施员不必牺牲对功效代码的节制。没有依赖一些外部 UI 描写符文件,Visual Editor 实际上利用 Java 代码作为其 UI 界说名目。也就是说,它理会现有的 Java 用户接口建设代码,并基于开拓人员的可视编辑行动对其举办修改或生成新的代码。
很多贸易产物的方针是简化 UI 开拓。Instantiations 的 WindowBuilder 是这一规模的先驱。除了 Visual Editor 提供的根基成果之外,它还支持高级成果,好比 Eclipse Forms API。Matisse4Eclipse 是 MyEclipse IDE 的一部门,是它实际大将 Sun Microsystems 的 Project Matisse Swing UI 构建器引入到 Eclipse 平台中。
其他平台和编程语言
忠于它作为万能东西集成平台的使命,Eclipse 支持利用非 Java 语言的编程语言举办软件开拓。Eclipse Foundation 本身打点 C/C++ Development Tools 项目 (CDT),旨在为 C/C++ 开拓人员提供一个在成果和本领上不低于 Java 开拓人员所利用情况的情况。今朝,CDT 提供了一个 C/C++ 源代码编辑器,具有语法高亮显示、内容帮助、代码完成、基于 GDB 的编辑器、C/C++ 应用措施启动器、搜索引擎、Makefile 构建器和其他很多成果。
由 Eclipse.org 打点的其他编程语言项目包罗遗留语言,好比 COBOL 和 Fortran(项目 Photran),但尚有现代语言和编程技能,好比 AspectJ(它将面向方面编程引入 Java 技能中)、Web Services Business Process Execution Language (WS-BPEL)、Laszlo IDE(Laszlo 是用于开拓和交付富 Internet 应用措施的开放源码平台)和 Lepido(Apache Cocoon Web 应用措施框架的东西)。建设用于开拓 Ajax 应用措施 (Rich Ajax Platform) 的最佳血统东西的遍及倡议也正在被提出,新核准的 Eclipse PHP IDE 项目标最新宣告意味着对风行 PHP 剧本语言的大力支持也在筹划中。
对其他语言的支持可从第三方提供商得到。Omondo UML 提供了一个 Unified Modeling Language (UML) 建模东西集,与 JDT 精采集成。可是,因为 UML 独立于编程语言,它可用于不必然包罗 Java 技能的项目中。PyDev 项目是 Python 编程语言的开放源码开拓东西集。xored 软件在其 TruStudio Professional(它的 TruStudio Foundation 注册在 EPL 之下)中提供了对 Python 编程的贸易支持。另一个开放源码项目 Ruby Development Tools (RDT) 提供了利用 Ruby 编程的完整东西集。最后,您可以在 ANTLR Studio 的辅佐下设计您本身的编程语言或特定于域的语言,ANTLR Studio 答允您基于 ANTLR 框架建设上下文自由的语法界说。ANTLR Studio 是由 Placid Systems 开拓的贸易产物。
焦点东西和技能
#p#分页标题#e#
Eclipse 社区的一个重要部门是用作其他产物或开拓东西的基本或增补的软件。固然您不行能下载并利用这些插件作为最终用户东西,但它们使其他人可以基于通用尺度建设高质量的软件,可能增加现有产物的成果。
在该种别中,Eclipse Foundation 宿主着几个项目。Eclipse Modeling Framework (EMF) 是支持自动代码生成的软件建模框架。它用于其他很多获益于模子驱动软件开拓的项目中。尽量 EMF 只利用了 UML 东西的一个子集,但 UML2 项目将其扩展以提供对完全 UML2 尺度的支持。
Graphical Editor Framework (GEF) 是用于为任意工具模子建设富图形编辑器的框架。该框架还用于其他很多提供可视编辑成果的项目中,好比 UML 图、图和事情流编辑器。Graphical Modeling Framework (GMF) 扩展了 GEF 和 EMF 以将可视编辑本领添加到任意 EMF 模子中。
Data Tools Platform (DTP) 项目旨在建设利用各类相关数据源的通用东西集。它提供用于打点数据库毗连以及建设和执行 SQL 剧本的东西。
Eclipse Test 和 Performance Tools Platform (TPTP) 包罗四个子项目:通用 TPTP Platform、用于应用措施监控和日志记录的 Monitoring Tools、Tracing and Profiling Tools 和最后一个 Testing 东西。这些东西答允在各类执行情况中监控、分解和测试 Java 应用措施。
Business Intelligence and Reporting Tools (BIRT) 将业务陈诉本领添加到现有应用措施中。BIRT 支持很多媒体,个中包罗 HTML 和 PDF。
Device Software Development Platform (DSDP) 旨在提供为嵌入式设备开拓软件的东西集。相关项目 eRCP 试图将 Rich Client Platform (RCP) 扩展到嵌入式设备。
SOA Tools Platform (STP) 的使命是构建框架和可仿照的可扩展东西,以支持软件的设计、设置、组装、陈设、监控,以及环绕面向处事架构 (SOA) 而设计的软件的打点。它由一些子项目组成,好比 Core Frameworks、SOA System、Service Creation、BPEL2Java 和 BMPN。
很多子项目宿主在 Eclipse Technology 项目标掩护伞之下,后者作为有趣想法的孵化器,大概有益于其他的新项目或现有项目。个中已经在别处提到的一些项目包罗 Eclipse Communication Framework (ECF),它提供用于构建及时通信和协作应用措施的通用 API 和组件集;Higgins Trust Framework,一个用于各类组上下文中的身份、提要文件和干系数据的可视集成的可扩展框架;以及 Voice Tools Project,它扩展 WTP 以支持语音识别应用措施的建设。
作为 RCP 的 Eclipse
跟着 Eclipse 动力的增加,很多公司和开拓人员已经发明 Eclipse 不只是集成东西的伟大平台,还可以用于其他范例的成果富厚的客户端应用措施,好比贸易和协作。因此,从版本 3.0 开始,Eclipse 已经超过了东西,此刻正式被支持作为 Rich Client Platform (RCP)。
RCP 应用措施共享面向东西的相应方的所有机动性和可扩展性,因为这些对应方也是由插件构成。可是,通用 RCP 插件集要小得多,并且一个插件不能将另一个插件放入 RCP 应用措施中,除非该应用措施明晰支持它。
IBM 的 Workplace Client Technology 是基于全部 Eclipse RCP 的平台的贸易示例。就架构而言,它是客户端的协作东西,Eclipse IDE 是开拓东西。IBM Workplace 是一个产物族,个中包罗利用会合打点的富客户机技能的信息打点和团队协作。它提供即时动静、Web 集会会议、共享日历打算,等等。
基于 Eclipse RCP 的开放源码应用措施的两个风行示例是 Azureus 和 RSSOwl。Azureus 是一个成果强大的 BitTorrent 客户机,答允您下载利用 BitTorrent 技能漫衍的大型文件。它支持本身不绝增长的插件集。RSSOwl 是成果富厚的连系新闻阅读器和聚合器。它答允您利用很多风行的联及名目(好比 RSS、RDF 和 Atom)搜索、订阅和阅读新闻和博客。
Eclipse RCP 在学术规模和研究应用措施中也变得风行起来。譬喻,NASA 的 Jet Propulsion Laboratory (JPL) 选择 Eclipse RCP 作为其 Maestro 项目标基本,该项目是用于打点 NASA 的 Mars Exploration Rovers 的高级操纵的东西集。该软件用于打算航行器的外貌勾当,好比到那边以及要拍摄几多照片。
尚有很多其他贸易和开放源码应用措施基于 Eclipse RCP。它们超过无数规模,个中包罗生物医学研究(Bioclipse、Sequence Scanner Software)数学和物理建模(BrainBox、GumTree、Kalypso)、通信和协作 (WiredReach)、贸易和金融(Eclipse Trader、BSI CRM、eClarus、Logic MindGuide),等等。
竣事语
#p#分页标题#e#
由于其基于插件的架构,Eclipse 成为集成开拓东西以及很多其他种类应用措施的万能平台。作为一个 IDE,Eclipse 不只可以用于编写 Java 代码,还可以利用其他编程语言开拓。作为 Rich Client Platform,它甚至可以用于执行范畴遍及的非编程任务。将 Eclipse 技能用于各类目标的贸易和开放源码应用措施在不绝增多。