如何使得eclipse支持lifesslibrary.com

2013 Eclipse社区报告 - ImportNew
自2012年发布年度社区报告,内容涵盖Eclipse社区定位、战略、关键性决策、财务、会员发展、创新等方方面面的信息。
欢迎阅读第二次Eclipse基金会社区报告(2012年度报告请看)。您对报告任何内容和形式的评论或反馈请发送到,我们将不胜感激。
本报告除了财务部分内容都将涵盖从至这段时间的所有信息。
2013.6发布
Eclipse基金会章程中的定义如下:
Eclipse技术是一个厂商中立的开放开发平台,提供框架、示范性可扩展工具(Eclipse平台)。Eclipse平台工具的示范性体现在它们验证了Eclipse框架的通用性,展示了如何合理使用这些框架并支持Eclipse平台自身的开发和维护。Eclipse平台工具的可扩展性在于可以通过编程接口扩展自身功能。Eclipse基金会公司(即Eclipse基金会)成立的目的是推动Eclipse平台的创建、发展、推广和支持,培养开源社区和生态系统的配套产品、功能、服务。
简而言之,Eclipse社区的愿景是:
成为个人和组织协作开发商业友好开源软件的主导社区。
董事会制定的Eclipse基金会2013战略目标如下:
成为开发人员的首选平台。Eclipse的目标旨在定义一个免费授权覆盖整个软件生命周期的开源开发平台,在不同的问题领域成为桌面及Web应用开发和部署的首选平台。自2004年开始,Eclipse项目采用了创新的运行时技术,比如Equinox和富客户端平台(RCP)。最近几年Eclipse运行时技术稳步提升,与此同时OSGi的关注程度也在快速上升,Eclipse的插件开发模型正是基于该技术。展望未来,我们期望采用Eclipse构建的项目和采用了Eclipse运行时技术的项目都能有快速地发展。
在高速发展的web、云和移动平台上发展Eclipse技术,而不仅仅是Eclipse IDE。当然,这个目标必须要建立在Eclipse社区不断发展的技术集合基础上。体现该目标的项目有Orion和我们的machine-to-machine项目。
为各个层次的会员创造价值。Eclipse基金会服务于那些有志于在商业产品和服务领域提升Eclipse技术的成员。Eclipse基金会专注于Eclipse生态系统中的商业机会,寻找并持续改进Eclipse市场及其它有益于会员的创新。提交者不仅是Eclipse基金会的一分子,他们在很多方面可以看作Eclipse的中流砥柱。Eclipse基金会及其员工年复一年地持续寻找服务和项目社区可以改进的地方。在2013年里,主要的改进目标有web、下载、代码管理、构建以及其它关键的基础设施。
培育生态系统,尤其要在纵向上培养。创建一个基于Eclipse并不断完善Eclipse技术的大型商业和开源社区是Eclipse成功的首要因素。每一次将Eclipse技术应用到某个产品、服务或应用程序的开发都会让Eclipse社区变得更加强大。2013年我们的目标是继续专注于创建特定产业的工作组和Eclipse新项目,例如航空、汽车和金融领域。
继续发展多样化收入模式。依赖单一资助会受到特定产业商业周期的负面影响,让基金会陷入更大的风险。发展多样化收入模式的目标是确保收入来自多种类型组织并寻找其它收入来源,比如会议和赞助等。
过去的一年中,董事会制定了很多影响Eclipse未来发展的战略决策。详细内容可以参见董事会的。
签署了Oracle TCK协议:经过长期曲折的过程,Eclipse基金会签署了Java TCK协议。所有Eclipse项目如果需要都可以使用TCK。由于TCK协议会给开源项目带来障碍,因此使用TCK的过程会严格控制。对于请求使用Java TCK的项目,必须满足下列条件:
项目PMC必须公开讨论并同意向EMO申请TCK
项目的战略合作伙伴希望使用TCK
董事会绝大多数对该项目使用TCK投了赞成票
到目前为止,EclipseLink和Virgo项目经过董事会批准使用TCK。
贡献者许可协议:以前,Eclipse项目不依赖贡献者许可协议(CLA)就可以得到合并提交所需的必要权利。项目的提交者会向每个贡献者提3个关于他们贡献代码来源的问题。然而,随着Eclipse社区迁移到git并采用像Gerrit这样的代码审查工具,之前的做法会明显地阻碍贡献。因此在2013年Eclipse基金会将会为贡献者制定CLA。
审查Eclipse公共许可证:Eclipse公共许可证的草稿差不多是15年前完成的。董事会决定向Eclipse社区和开源社区征求反馈进行改进和更新。一个透明的由社区主导的讨论在2013年已经启动。
Eclipse基金会的财务年度截止日期是12月31日,由Deloitte & Touche, LLP进行审计。它是在美国特拉华州注册的一家非营利性组织,总部位于加拿大渥太华。
2012年Eclipse基金会的财务表现稳定。谷歌的会员等级升级为战略开发者,网站广告收入保持强劲,来自工作组的收益持续增长。除了原先预计的30万美元亏损之外Eclipse基金会只亏损了10万美元,现金储备还在持续增加。整个组织整个财务表现稳定。
过去3年的财务审计数据都包含在下面的表格中。
截至2012年,Eclipse总共拥有186名会员。到2013年末,会员总数达到190名。去年加入Eclipse的公司包括Architexa、Checkmarx、Combitech、Coverity、DevBoost、Eucalyptus Systems、HP、Intecs、Itpearls、Lucierna SL、OpenGeo和WireframeSketcher。
长期支持项目(LTS)是2012年启动了 一项针对Eclipse会员的新项目,旨在:
在提供Eclipse技术支持和维护的基础上鼓励组织间的协作。
提供长期(数年)和超长期(数十年)的Eclipse技术支持和维护。
本质上,LTS是为那些已经开发了基于Eclipse产品并需要基础架构支持和维护的公司节省时间和资源。从历史来看,构建并修复老的Eclipse发布版本是一项非常困难的任务。更糟糕的是,每个公司都要根据自己的需要开发必要的功能和流程。LTS工作组的目的就是提供一个单一、共享的服务,在商业产品中更容易地支持和维护Eclipse老的发布版本。
随着Eclipse社区的成长,对Eclipse“风格”的开源项目开发方式需求越来越多,关注点都聚焦于在开发代码的同时维持一个商业生态系统。因此蓬勃发展。Eclipse工作组是独立的、具有相同利益的社区组织,这些社区拥有自己的财团和项目。有时候,工作组会维护自己独立的代码库、网站和品牌。然而,所有工作组都会在Eclipse开发流程和知识产权政策下运作。
汽车制造领域:汽车制造业的创新主要在于电子和软件功能的创新。汽车系统变得越来越复杂,一个涵盖整个供应链的开发工具台已经成为了业界的迫切要求。要加速产品开发、创建高质量的软件功能、改善供应链集成就必须对件开发工具进行改进和创新。过去的一年里,定义并发布了第一个针对汽车制造软件开发者的工具。这次的发布包含了一个稳固的平台,该领域的工具提供商可以在这个平台上进行构建。工作组的其他项目专注于环境、工具认证流程以及各种其他工具扩展。目前该工作组包括了 BMW Group、Continental AG以及Robert Bosch GmbH。
LocationTech:LocationTech工作组专注于拓宽位置感知技术的应用。目前该小组选择了4个关注的领域
存储和处理大数据
模型驱动开发
桌面、Web和移动地图
实施分析重要商业数据
LocationTech工作组于日正式启动,工作组不断成长并表现出了强劲的势头。创始成员包括IBM、Oracle、Actuate和OpenGeo,成员包括OSGeo和卡尔顿大学的测绘学和制图研究中心。目前已经有4个项目和提案准备启动。
机器对机器 (M2M):Eclipse在构建M2M应用开发平台、协议和工具方面取得了重大进展。目前有3个活跃的Eclipse开源项目针对M2M领域:1)Koneki提供了Lua开发工具;2)Paho提供了MQTT客户端的开源参考实现;3)Mihini提供了设备管理框架。Eclipse还加入了OASIS技术协会参与MQTT协议的标准化工作。M2M工作组的活跃成员包括Sierra Wireless、IBM、Eutrotech和Axeda。
Polarsys (航天):Polarsys的目的是构建并维护一套开源工具,用以开发苛求安全性、密集型的嵌入式系统。相关的领域包括航天、国防、运输、通信、能源和医疗保健产业。这些行业对开发工具有很多特殊的要求,包括长期支持和维护等。在Polarsys成立后的一年时间里,发布了他的第一个路线图。目前正在开发Polarsys IDE的第一个版本,预计2013年10月发布。除此之外,Polarsys成员还启动了其他项目。目前成员列表包括Airbus、 CEA List、Ericsson、Thales、Atos、Intecs、Obeo、Combitech和SoyaTec。
会议和活动
谈到Eclipse基金会活动就不能不提到我们成功的社区会议。EclipseCon和 都取得了巨大的成功。这两项活动无论从参与者、赞助商和参与者的积极反馈方面都大大超出了我们的预期,作为参考数据EclipseCon 2012的参与者给出了总体评分是1.77(1=出色,2=非常好),这是我们举办会议中得到的最高分。2013年的第一场会议是。
EclipseCon会议、和 是Eclipse基金会的主要活动,通过这些活动增强社区间的个人关系,创造面对面交流的机会。我们强力推荐所有Eclipse社区的参与者都能够参加这些活动。
知识产权管理
在日至日这段时间,Eclipse基金会收到了920次代码审查请求完成了其中的740次请求。随着Pablo Jacubovich加入IP组担任知识产权分析师以后,在知识产权(IP)领域相关的资源限制得到了缓解。
除了Pablo加入IP组以外,相比去年Juno的审查次数(136)Kepler同步发布版本的审查数量大幅减少(27)。这使得IP组的工作量达到有史以来的最低点。截止到撰写本文位置,代码审查的总次数为70次。
随着工作组活动的增加和更多的现有开源项目迁移到Eclipse,可以预期接下来的一年里会有大量的代码审查请求因此代码审查数量会有所上升。基于预期的增幅,2013年IP组不再需要雇佣新员工。
过去的一年里Eclipse社区出现了大量可喜的创新。一些关键项目和技术领域都在下面列举出来,包括他们的最近动向和未来走向。虽然不是非常详尽,但是希望能够突出Eclipse社区正在进行的那些令人激动人性的技术。
在2012年Eclipse活跃项目和提交者出现了一定下滑,然而总体的提交次数却有所提升。(这些数据基于对代码仓库活动的分析)
Juno同步发布
2012年6月Eclipse社区发布了Juno,这是Eclipse的第七次年度同步发布。包含前一次的Eclipse平台发布,这已经是第9次准时发布。Juno同步发布包含了71个项目,总计6千万行代码。
这次既定的发布是Eclipse近几年来成功的一个关键性标志,也是Eclipse生态系统的重要一环。
随着Juno的发布,Eclipse 4.2已经成为了Eclipse社区的默认平台,也是自2004年以来Eclipse平台的第一个主要版本。Eclipse平台4.x版本包括:
编写插件更简单(例如,让Eclipse成为更好的富客户端平台)
更好地控制基于Eclipse产品的外观
提升平台贡献者的多样性
向后兼容API清洁的客户端
随着2013年发布的Kepler,Eclipse将不再继续支持3.x系列。
其它Eclipse Juno新特性包括:
新的Koneki项目为M2M应用开发提供了世界一流的Lua开发平台
Equinox提供了新的OSGi R5规范参考实现
Eclipse Virgo 3.5提供了新的Virgo Nano使得开发者可以部署小巧、快速、基于OSGi的应用程序
Xtext成为了Java开发者的新语言,并将引入调试支持、改进的IDE支持以及新语言特性,包括property、数据类和成员类型推断
Xtext 2.3将会支持对使用Xtext创建基于JVM的DSL进行调试,此外还会更紧密地结合Java开发工具(JDT)
Eclipse Code Recommenders让开发者更加精明地使用API。基于一个知识型高级分析器对现有的API使用情况进行分析, Code Recommenders在构建Java应用程序时会向Eclipse开发者提供智能化API推荐。
新项目的完整列表包括:
Graphical Modeling Framework (GMF) Tooling
Model Focusing Tools
BPEL Designer
Code Recommenders
值得注意的是,在Eclipse发布Juno之后报告了严重的性能问题。其中的大多数都是因为那些难以测试的插件和使用。Eclipse平台组,在2013年发布的4.2.2版本定位了绝大多数已知问题。
有趣的新项目
过去的一年里,Eclipse基金会吸引了很多有趣的新项目。一些这方面的例子包括:
Vert.x: Vert.x项目在2013年2月决定迁移到Eclipse基金会。Vert.x是一个基于JVM的多语言运行时项目。尽管Vert.x加入了EclipseRT社区,但是该项目并没有使用OSGi。
Eclipse Bundle Recipes:EBR项目提供了”处方(recipe)“,通过模板文件的形式将开源函数库Jar文件转成OSGi Bundle。EBR是EclipseRT的一个子项目并且提升了现有项目的功能。
uDig:uDig不但是Eclipse第一个定位技术项目,还是一个基于Eclipse富客户端技术(RCP)构建的开源桌面软件框架。
Sirus:Sirius旨在提供由图形、表格或者树形模型编辑器组成的多视图工作台。用户只需要了解极少的Eclipse技术就可以随意定制自己的模型工作台,在需要时还可以进行深度定制。
Mihini:Mihini项目是一个嵌入式运行时的开源实现,提供的高层Lua API可以用来开发可移植的M2M应用程序。这是Eclipse上的第一个Lua语言项目。Mihini与Koneki紧密相关,并提供了一个基于Eclipse的Lua IDE。
提交者和项目社区
EMO是一项旨在为Eclipse提交者和所在项目提供稳定改进的服务。下面是一些相关数据,包括一些去年作出的改进。
Eclipse社区已经从CVS迁移到Git作为源代码管理工具。在日CVS已经关闭,于此同时SVN也已经不鼓励使用。到今天为止,git.eclipse.org已经涵盖了500个代码仓库。
关键性的三项服务:Bugzilla、Git和网站www.eclipse.org总体可用性达到了99.94%,其中Bugzilla和Git的可用性甚至达到了四个9(99.99%)。然而针对论坛的DDoS使得站点的可用性降低到了99.83%。
我们整个服务器基础设施都已经迁移到了一个新的数据中心,并且提供了额外的存储空间,改进的空调系统,增加了42%的带宽已经更强大的电源支持,降低了基金会的运作成本。
部署了新的服务器:为额外的CBI(构建和测试)提供了虚拟主机,数据库方面增加了一台新的服务器以及2TB的存储单元执行构建相关任务,取代了8年半之前的老机器。
截至2012年9月,我们已经实现了基于开源软件进行备份和系统恢复。这个解决方案比起之前的系统除了更加经济以外,而且实践证明更加灵活可靠。
通用构建基础设施
通用构建基础架构(CBI)是由Eclipse基金会为项目提供的一项服务。CBI是一组帮助项目在Eclipse服务器上构建代码的技术和服务。这些技术包括Maven、Tycho、Hudson和Nexus。核心的无法包括一个Jar签名工具、MacOS签名工具和Windows签名工具。
CBI已经部署到很多项目上,目前已经涵盖了60个以上的git仓库。值得一提的是Eclipse平台项目也采用了CBI。对于CBI的第一印象是非常积极,因为他们可以在几分钟内构建Eclipse平台。
CBI的主要目标是进一步减少向Eclipse项目贡献的障碍。通过降低构建和测试Eclipse代码门槛,我们希望鼓励更多的开发者向Eclipse项目贡献代码。我们会继续投入CBI并尽可能地推广到其他Eclipse项目。
项目管理基础设施
2012年晚些时候,Eclipse基金会完成了取代现有项目管理基础设施的首次发布,其中包括开发者门户网站。改进后的门户网站提供一体化基础框架,所有项目都能够更加容易地对项目活动进行统一管理。
Eclipse在这方面的努力包括:
更好地一致性:我们实现了配置/数据驱动项目Web并为项目的发布、审查和计划提供了直接链接。提供的信息包括项目基础元数据、项目计划和发布审查信息。这些信息都来自(易于提升的)一致性数据,这些数据都采用相同的格式(而不是任意格式的多个文档)。
信息更集中:提交者可以在项目信息页面即时编辑。只要有可能,只要能在一个地方发布的文本或信息不会提供其他链接。与审查、投票等相关的评论和讨论都会直接在讨论的地方显示。
启动项目更快速:通常,由数据驱动的项目站点会包含相同的项目发布、生茶、下载等链接。项目也可以根据需要覆盖默认配置给出定制的Web。设置项目站点只需要进行一些配置,不用PHP编程以防止使用私有API。
原文链接:
- 译文链接: [ 转载请保留原文出处、译者和译文链接。]
关于作者:
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其实我是一个程序员。(新浪微博:)
第二项, 看来判断map中元素是否相等时,是先hashCode比较,再equals()比较的哇!
关于ImportNew
ImportNew 专注于 Java 技术分享。于日 11:11正式上线。是的,这是一个很特别的时刻 :)
ImportNew 由两个 Java 关键字 import 和 new 组成,意指:Java 开发者学习新知识的网站。 import 可认为是学习和吸收, new 则可认为是新知识、新技术圈子和新朋友……
新浪微博:
推荐微信号
反馈建议:@
广告与商务合作QQ:
– 好的话题、有启发的回复、值得信赖的圈子
– 写了文章?看干货?去头条!
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 活跃 & 专业的翻译小组
– 国内外的精选博客文章
– UI,网页,交互和用户体验
– JavaScript, HTML5, CSS
– 专注Android技术分享
– 专注iOS技术分享
– 专注Java技术分享
– 专注Python技术分享
& 2015 ImportNewIBM Bluemix
点击按钮,开始云上的开发!
developerWorks 社区
本文为您提供关于 Eclipse 平台的概述,包括其起源和体系结构。本文首先简要讨论 Eclipse 的开放源代码性质及其对多种编程语言的支持,然后通过一个简单的程序例子展示 Java 开发环境。本文还将考查以插件扩展形式可用的一些软件开发工具,并展示一个用于 UML 建模的插件扩展。
(), 软件顾问
David Gallardo 是一名独立软件顾问和作家,他的专长是软件国际化、Java Web 应用程序和数据库开发。他成为专业软件工程师已经有 15 年了,他拥有许多操作系统、编程语言和网络协议的经验。他最近在一家 B2B 电子商务公司 TradeAccess, Inc.从事先进的数据库和国际化开发。在这之前,他是 Lotus Development Corporation 国际产品开发部的高级工程师,负责开发为 Lotus 产品(包括 Domino)提供 Unicode 和国际化语言支持的跨平台库。可以通过
与 David 联系。
编者注:本文更新版本“” 2008 年 8 月发表。此最初版本将保留下来供大家参考。要了解 Eclipse 的最新功能,请阅读新文章。Eclipse 是什么?
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 服务和数据库访问的支持。Eclipse 是开放源代码的软件
开放源代码软件是这样一种软件,它们在发布时附带了旨在确保将某些权利授予用户的许可证。当然,最明显的权利就是源代码必须可用,以便用户能自由地修改和再分发该软件。这种用户权利的保护是通过一种称为
copyleft的策略来完成的:软件许可证主张版权保护,除非明确授予用户这样的权利,否则用户不得分发该软件。copyleft 还要求同一许可证涵盖任何被再分发的软件。这实际上倒置了版权的目的——使用版权来授予用户权利,而不是为软件的开发者保留版权——copyleft 经常被描述为“保留所有版权”。
曾经四处蔓延的对开放源代码软件的许多恐惧、担忧和疑虑,都与某些 copyleft 许可证的所谓“病毒”性质有关——如果使用开放源代码软件作为您开发的程序的一部分,您将失去自己的知识产权,因为该许可证将“传染”您开发的专有部分。换句话说,该许可证可能要求与开放源代码软件一起打包的所有软件,都必须在相同的许可证之下发布。虽然这对最著名的 copyleft 许可证(即 GNU 通用公共许可证,例如 Linux 就是在该许可证之下发布的)来说可能是事实,当时还有其他许可证在商业化和社区考虑之间提供了较好的平衡。开放源代码计划(Open Software Initiative)是一家非营利机构,它明确定义了开放源代码的含义及满足其标准的认证许可证。Eclipse 是在 OSI 认可的通用公共许可证(CPL)1.0 版之下被授予许可证的,CPL“旨在促进程序的商业化使用……”(欲获得指向通用公共许可证 1.0 版完整文本的链接,请参阅本文稍后的
为 Eclipse 创建插件或将 Eclipse 用作软件开发应用程序基础的开发人员,需要发布他们在 CPL 下使用或修改的任何 Eclipse 代码,但是他们可以自由决定自己添加的代码的许可证授予方式。与出自 Eclipse 的软件一起打包的专有代码不需要作为开放源代码来授予许可证,该源代码也不需要提供给用户。尽管大多数开发人员不会使用 Eclipse 来开发插件,或创建基于 Eclipse 的新产品,但是 Eclipse 的开放源代码性质所意味的,并不只是它使得 Eclipse 免费可用(尽管便于商业化的许可证意味着插件可能要花钱)。开放源代码鼓励创新,并激励开发人员(甚至是商业开发人员)为公共开放源代码库贡献代码。对此存在许多原因,不过最本质的原因或许是为这个项目作贡献的开发人员越多,这个项目就会变得对每个人都越宝贵。随着这个项目变得更加有用,更多的开发人员将会使用它,并围绕它形成一个社区,就像那些围绕 Apache 和 Linux 形成的社区一样。Eclipse 是什么机构?
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 背后的一些理论、历史和管理,下面让我们考察该产品本身。Eclipse 工作台
在第一次打开 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。
Java 开发环境(JDE)
为试验一下 Java 开发环境,我们将创建并运行一个“Hello, world”应用程序。使用 Java 透视图,右键单击“Hello”项目,选择
New=&Class,如图 2 所示。在随后出现的对话框中,键入“Hello”作为类名称。在“Which method stubs would you like to create?”下面,选中“public static void main(String[] args)”复选框,然后按 Finish。
图 2. 在 Java 透视图中创建新类这样将在编辑器区域创建一个包含
Hello 类和空的
main() 方法的
.java 文件,如图 3 所示。然后向该方法添加如下代码(注意其中
i 的声明是有意省略了的):
图 3. Java 编辑器中的 Hello 类您会在键入时注意到 Eclipse 编辑器的一些特性,包括语法检查和代码自动完成。在 2.1 版(我曾下载 M2 版来试用过)中,当您键入开括号或双引号时,Eclipse 会自动提供配对的符号,并将光标置于符号对之内。在其他情况下,您可以通过按 Ctrl-Space 来调用代码自动完成功能。代码自动完成提供了上下文敏感的建议列表,您可通过键盘或鼠标来从列表中选择。这些建议可以是针对某个特定对象的方法列表,也可以是基于不同的关键字(比如
while )来展开的代码片断。
语法检查依赖增量编译。每当您保存代码,它就在后台接受编译和语法检查。默认情况下,语法错误将以红色下划线显示,一个带白 “X” 的红点将出现在左边沿。其他错误在编辑器的左边沿通过灯泡状的图标来指示;这些就是编辑器或许能为您修复的问题——即所谓的Quick Fix(快速修复)特性。上面的代码例子在
for 语句后面有一个灯泡状图标,因为
i 的声明被省略了。双击该图标将调出建议的修复列表。在此例中,它将提供创建一个类字段
i 、一个局部变量
i 或一个方法参数
i 的建议;单击其中的每一个建议都会显示将要生成的代码。图 4 显示了该建议列表和建议创建一个局部变量之后生成的代码。
图 4. Quick Fix 建议双击该建议就会把建议代码插入到代码中的恰当位置。一旦代码无错误地编译完成,您就能够从 Eclipse 菜单上选择 Run 来执行该程序(注意这里不存在单独的编译步骤,因为编译是在您保存代码时进行的。如果代码没有语法错误,它就可以运行了)。这时会出现一个具有适当默认设置的 Launch Configurations 对话框;请按右上角的 Run 按钮。一个新的选项卡式窗格将出现在下面的窗格(控制台)中,其中显示了程序的输出,如图 5 所示。图 5. 程序的输出也可以在 Java 调试器中运行程序。首先双击编辑器视图左端的灰色边沿,从而在调用
System.out.println() 之后的
main() System.out.println() 中设置一个断点。一个蓝色的点将会出现在那里。然后从 Run 菜单上选择 Debug。正如上面描述的,这时会出现一个 Launch Configurations 对话框。请选择 Run。透视图将自动切换到 Debug 透视图,其中具有许多有趣的新视图,如图 6 所示:
图 6. Debug 透视图首先,请注意该透视图左上角的 Debug 视图。这个视图显示调用堆栈,并且标题栏中有一个工具栏,它允许您控制程序的执行,包括继续、挂起或终止程序、跟踪下一个语句、单步执行下一个语句,或者从方法返回。右上角的窗格包含许多选项卡式的视图,包括 Variables、Breakpoints、Expressions 和 Display。这里我单击了 Variables 视图,以便我们能够看到
i 的当前值。
可以通过上下文敏感的帮助,获得关于这些视图的更多信息:单击视图的标题,然后按 F1。附加插件
除了像 JDT 这样用于编辑、编译和调试应用程序的插件外,还有些可用的插件支持从建模、生成自动化、单元测试、性能测试、版本控制到配置管理的完整开发过程。Eclipse 标准地附带了配合 CVS 使用的插件,CVS 是用于源代码控制的开放源代码并发版本系统(Concurrent Versions System)。Team 插件连接到 CVS 服务器,允许开发团队的成员操作一组源代码文件,却不会相互覆盖其他人的更改。这里不打算进一步探讨如何从 Eclipse 内部进行源代码控制,因为这需要安装 CVS 服务器,不过支持开发团队而不只是独立的开发,这是 Eclipse 的一个重要的必备特性。已经可用或已宣布要推出的一些第三方插件包括:版本控制和配置管理CVSMerant PVCSRational ClearCaseUML 建模OMONDO EclipseUMLRational XDE (代替 Rose)Together WebSphere Studio
图形Batik SVGMacromedia FlashWeb 开发、HTML、XMLMacromedia DreamweaverXMLBuddy应用服务器集成Sysdeo Tomcat launcher欲了解可用插件的更完整列表,请参阅
中的链接。
例子:一个用于 UML 建模的插件
要查看插件的例子,以及查看它是如何与 Eclipse 集成的,请下载流行的 OMONDO EclipseUML(参阅
中的链接);您需要注册,不过该插件是免费的。这个插件依赖 GEF,即 Graphical Editor Framework,这是另一个 Eclipse 插件。GEF 是 Tools 子项目的一部分。要下载 GEF,请转到 Eclipse Web 站点(参阅
),选择“downloads”,然后单击“Tools PMC downloads page”链接。注意您需要下载 OMONDO 推荐的 GEF 版本(针对 OMONDO 1.0.2 的是 GEF 2.0 版)。
下载之后,插件的安装通常是通过解压缩下载文件,并将其内容复制到 Eclipse 插件目录来完成的。在此例中,GEF 需要解压缩到 Eclipse目录(它将自动从该目录进入插件目录)。为安全起见,您可能想将它解压缩到某个临时目录,再相应地从那里复制相关目录。如果 Eclipse 正在运行,您需要停止它然后再重新启动它,这样它才能识别新安装的插件。一旦 EclipseUML(以及 GEF)安装完成,您就能够像创建一个 Java 类文件一样创建一个类图。在 Java 透视图中,右键单击 Package Explorer 中的“Hello”项目,然后从弹出菜单上选择
New=&Other。New 对话框的左边窗格中将会有一个用于 UML 的新选项。EclipseUML 的免费版本仅支持类图,因此右侧的惟一选项是 UML Class Diagram。请选择 UML Class Diagram,然后为该类图键入一个名称,比如“Hello”:
图 7. Class Diagram 编辑器编辑器区域中将会出现一个图形编辑器,它带有用于绘制类图的画布。您可以通过两种方式创建类图:通过将 Java 文件从 Package Explorer 拖放到类图上,从而对现有代码进行逆向工程;或者使用空白类图上面工具栏中可用的绘制工具。要试验第一种方法,请创建一个名为 Person 的新类(使用
File=&New=&Class),然后赋予它下面列出的两个私有属性:
/** Person.java
* @author david
public class Person {
* Returns the address.
* @return Address
public Address getAddress() {
* Returns the name.
* @return String
public String getName() {
* Sets the address.
* @param address The address to set
public void setAddress(Address address) {
this.address =
* Sets the name.
* @param name The name to set
public void setName(String name) {
this.name =
}(应该承认,我仅键入了针对 name 和 address 的行。getter 和 setter 方法是通过 Eclipse 自动生成的,即右键单击源代码,然后从弹出菜单上选择
Source=&Generate Getter and Setter。)
请保存并关闭
Person.java Hello.ucd。图 8. Person 类图要从 UML 创建 Java 类,请单击类图窗口顶部工具栏上的“New class”按钮,即左起第三个按钮,然后单击类图。当 New 类向导打开时,请键入 Adress 作为类名称,然后按 Finish。您可以右键单击类名称并选择
New=&Attribute,从而给类添加属性。在 New 属性对话框中,请输入属性名称、类型和可见性。然后右键单击类名称并选择
New=&Method来添加方法。
当您更改类图时,图下面的 Source Editor 窗口将反映所做的更改。最后,您可以单击 Association 按钮(左起第五个),绘制一条从 Person 类指向 Address 类的线段,从而绘制这两个类之间的关系图。这样会调出另外一个对话框,您可以在其中输入关联属性(请参考 EclipseUML 帮助,以了解关于必需信息的更多内容)。完成后的图应该类似如下:图 9. 关联这个 UML 插件展示了 Eclipse 插件的几个典型特点。首先,它展示了工具之间的紧密集成。表面上绝对无法看出有多个组件在工作;与 Eclipse
平台和 JDT 的集成是无缝的。例如,当 Person 类被创建时,它显示语法错误是因为它的一个属性
Address 没有定义。一旦
Address 类在 UML 图中创建完成,这些组件就会分开显示出来。
另一个特点是 EclipseUML 利用其他插件提供的功能的能力——在此例中是 GEF 插件,它提供用于开发可视化编辑器的工具。还有另一个特点涉及 EclipseUML 插件使用多层次功能来分发的方式。支持类图的基本插件是免费的,但是更成熟的版本要付费才能使用。Eclipse 平台体系结构
Eclipse 平台是一个具有一组强大服务的框架,这些服务支持插件,比如 JDT 和插件开发环境(PDE)。它由几个主要的部分构成:平台运行库、工作区、工作台、团队支持和帮助。图 10. 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 的开发正处于关键阶段。主要软件工具提供商都参与进来了,并且开放源代码 Eclipse 插件项目的数量正在与日俱增。可移植、可扩展、开放源代码的框架并不是个新思想(您会想起 Emacs),但是由于它成熟、健壮和优雅的设计,Eclipse 带来了全新的动力。IBM 价值 4000 万美元的世界级软件在开放源代码领域的发布,给业界带来了久违的震撼。
参考资料 您可以参阅本文在 developerWorks 全球站点上的
获得 Eclipse 的文档、文章以及下载 Eclipse。
下载流行的
;您需要注册,不过该插件是免费的。
关于开放源代码软件的信息,包括诸如公共通用许可证这样的认证开放源代码许可证,可在
关于 copyleft 的权威解释可在
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
文章、教程、演示,帮助您构建、部署和管理云应用。
立即加入来自 IBM 的专业 IT 社交网络。
为灾难恢复构建应用,赢取现金大奖。
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=LinuxArticleID=21840ArticleTitle=Eclipse 平台入门publish-date=

我要回帖

更多关于 www.sslibrary.com 的文章

 

随机推荐