eclipse4插件开发_书评:“ Eclipse 4插件开发示例”

eclipse4插件开发

InfoQ Java的常规撰稿人Alex Blewitt博士最近通过Packt出版发布了“ Eclipse 4插件开发示例 ”。 本书使用Java作为语言,为可能的Eclipse插件开发人员提供了完整的教程。 另外,在后面的章节中将同时讨论构建自动化和Eclipse 4模型的详细介绍,它可能会为经验丰富的Eclipse开发人员提供有用的资源。

在结构方面,本书包括分步说明,以及有关示例运作方式的更详细说明,可帮助您评估理解的多项选择题以及有关可以巩固自己经验的实验建议学到了。 它写得很好-简洁明了-并设法以相对紧凑的形式传达大量信息。

在向您介绍了设置Eclipse和Java的业务之后,本书将进入传统的“ Hello World”示例,使用Eclipse插件向导创建示例插件,启动并调试它。

从这里开始,接下来的四章将重点放在UI上,首先使用Eclipse的Standard Widget Toolkit(SWT)进行示例,然后使用提供了MVC架构和更高抽象层次的JFace。 JFace示例涵盖使用基于表和基于树的视图为结构化数据构建查看器,通过菜单和进度管理器与用户进行交互以及存储首选项。

从对Eclipse 4模型的详细概述开始,以后的章节应该对经验丰富的开发人员和初学者有用。 这是对Eclipse 3.x的重大更改,现在使用Eclipse Modeling Framework表示了用户界面。 有关Eclipse 3和Eclipse 4之间差异的详细信息,以及有关开发人员可用来构建将在两种版本的平台上运行的插件的不同方法的详细信息。

其他主题包括使用Maven Tycho自动进行构建, Maven Tycho已成为构建Eclipse插件的实际标准,使用JUnit进行单元测试自动化,以及使用SWTBot进行用户界面测试,将插件合并为功能,以及生成和注册更新站点。 。

我与亚历克斯交谈,以了解更多有关它的信息。

InfoQ :这本书的目的是谁?

尽管本书的标题是“面向初学者的Eclipse 4插件示例开发”,并且代码示例和练习都涉及很多细节,但我希望本书对现有的Eclipse插件开发人员同样有用。 首先,即使是经验丰富的Eclipse开发人员,Eclipse 4模型也可能是陌生的,我希望专门研究E4模型的这一章对于探索和介绍Eclipse 4.x和Eclipse的区别是有用的起点。 3.x。 还有覆盖最佳实践的目标。 例如,确保覆盖了命令和处理程序(以及如何迁移所有不赞成使用的操作)。

现有的Eclipse插件开发人员还可能会对有关Tycho构建的这一章感兴趣,因为它展示了如何将现有的PDE插件迁移到较新的Tycho构建。

InfoQ :是什么促使您编写的?

Eclipse 4是一个相对较新的范例,将插件粘贴到IDE中的方式已经发生了很大变化。 您可以在Internet上找到许多教程,这些教程都是基于Eclipse 3(甚至是Eclipse 2)的,因此,您会找到有关创建动作作为提供菜单项的方式的教程。 我想写一本肯定是最新的书,涵盖了当前的最佳实践,并着重强调了人们可能仍在使用旧技术的那些东西(例如动作)。

就个人而言,我一直想写一本书,而我的专业领域包括Eclipse,OSGi和Git。 在成为他们的詹金斯书的审阅者之后,我与Packt一起提出了建议。 随着Eclipse最近过渡到4.x流,并且能够与Eclipse 4.3发行版同步发布,这似乎是一个理想的机会。

InfoQ :文本中的调试信息给我留下了深刻的印象-使用步骤筛选器和条件断点,检测SWT中的资源泄漏等等。 您特别想涵盖的内容?

这本书是为初学者编写的,因此,他们通常可能没有太多调试经验。 我不仅要介绍基础知识,还想介绍一些用于调试Java和插件程序的更有用的技术。 通常这些提示不是立即显而易见的,只能通过其他方式找到它,因此希望通过在书中进行介绍,我可以与他人分享我的经验。

由于SWT使用手动资源管理,因此很容易编写泄漏的代码而无需意识到。 许多用户有时会看到“不再处理”错误,并且将其归咎于Eclipse,但实际上这是公地的悲剧。 它所需要的只是一个泄漏的插件,以缓慢消耗可用资源,最终Eclipse运行时将停止运行。 因此,我想介绍如何调试和检测泄漏,更重要的是,首先要通过使用资源注册表之一来避免泄漏。

InfoQ :您之前提到第谷。 它是什么,它与Eclipse开发人员以前的工作相比如何?

Tycho是Sonatype率先开发的基于Maven的构建系统,用于以可重复的方式开发Eclipse插件。 Eclipse一直在编译插件方面有些特殊,因为OSGi编程模型在JAR之间设置过滤器。 因此,当a.jar依赖于b.jar时,可能不一定能够看到b.jar的所有软件包。 Eclipse历来一直将Ant用作PDE构建的基础-实际上,当您在IDE中构建Eclipse插件时,它将生成并自动删除build.xml文件,并且“ build.properties”为实际上直接馈入到Ant构建中。

不幸的是,基于Ant的构建始终很难调试,并且解决依赖关系的方法非常复杂且难以设置。 另一方面,Maven是针对Java和其他应用程序的事实上的标准构建工具,并且具有内置的依赖关系解析和缓存机制,使标准化的构建可以在任何计算机上运行。

Tycho是一组Maven插件,可以模拟以前的基于Ant的构建,但是可以解析和使用来自P2存储库(而不是中央存储库)的P2依赖关系。 该插件可以选择并使用build.properties文件并了解PDE的文件布局,并调用Eclipse编译器(已安装必要的OSGi过滤器)以生成已编译的插件。 有用于实现产品,功能或存储库的单独插件,因此可以使用任何现有的PDE插件,丢弃复杂的Ant构建,并用一些相对简单的Tycho插件替换它们。

最好的部分是Eclipse平台正朝着将Tycho作为Common Build Infrastructure的一部分进行全面构建的方向发展。 现在可以签出Eclipse平台并执行构建,并且只需要在命令行上使用Maven。 加上使用Gerrit(以及将来的GitHub拉取请求)来接收贡献的举动,这使Eclipse成为一个更加开放的社区,并将鼓励更多的开发人员贡献修补程序。

InfoQ :就UI模型的工作方式而言,Eclipse 4.x代表了与Eclipse 3.x的重大转变。 在本书中,您将介绍开发人员目前支持3.x和4.x系列的选项。 我知道Eclipse基金会的成员正在继续努力。 您是否可以让我们对Luna出世时(计划于2014年夏季)在该地区看到的东西有所了解?

Eclipse 4.2(Juno)的发行版是基于E4的第一个生产发行版,其中Eclipse下载页面上的标准软件包是在E4平台上构建的。 尽管以前的版本已经可以供用户测试,但这是第一次大规模测试,并且很明显,有一些性能问题需要解决( InfoQ前面已经介绍过)。

Eclipse 4.3(Kepler)发行版确实是基础E4平台性能的一个进步,但是从本质上讲,新模型主要针对需要对应用程序环境的外观和感觉进行精细控制的RCP开发人员。 许多Eclipse IDE插件仍然提供与Eclipse 3.x API的兼容性,并且在最低要求变为4.2之前(在4.4发布之后可能会发生更多),很有可能它们中的许多将继续依赖Eclipse 3。 Eclipse 4.x版本中的.x兼容性层。

Eclipse 4.x模型的某些方面仍与IDE插件的工作方式不匹配。 例如,如果您要构建插件(而不是应用程序),则在安装时将模型与应用程序模型合并是很棘手的(类似的事后很难撤消)。 在插件可以完全采用本机E4 API之前,将需要其中一些功能。

我希望看到Luna是某些E4更改的起点,这将允许针对E4模型编写纯IDE插件。 我们已经有一些反向的E4兼容性层(允许您编写E4组件并将其托管在Eclipse 3.x API中),但是这些是可选下载,与Eclipse 4.x版本紧密结合,不能作为一部分使用标准下载。 一旦将其合并为平台的一部分,我希望看到更多的人使用它并逐步发展API。

最后,Luna还为即将到来的OSGi R6版本提供了支持,其幕后将在标准化运行时的几个低方面方面进行扩展,并且Luna Equinox实现正从其已有数十年历史的处理挂钩中迁移到转向更标准化的OSGi运行时。 但是,对于普通的Eclipse插件用户而言,很多隐藏了。

InfoQ :最后,您还有什么其他书籍或资源推荐给想要利用Eclipse生态系统所提供的一切的人?

Eclipse Foundation YouTube频道 ,其中包含许多视频演示和播客,并且位于http://marketplace.eclipse.org的Eclipse Marketplace是查找Eclipse插件的理想站点。 如果要进行E4开发,那么在Eclipse主站点上很难找到,因此在那里发布的E4工具站点将具有适用于相应平台的正确版本。 最后,Lars Vogel的http://www.vogella.com网站是一个有关Eclipse和其他平台的教程的绝佳站点。 Lars一直是E4的大力支持者(和贡献者/提交者),而我在撰写本书时所学到的许多东西都受到他对E4平台的了解的影响。

Packt提供了示例章节 。 亚历克斯还写了一篇博客文章,介绍了他写这本书的经验。

关于图书作者

Alex Blewitt博士在伦敦的一家投资银行工作,但仍然有时间赶上最新的OSGi和Eclipse新闻。 尽管他曾是EclipseZone的编辑和2007年的Eclipse Ambassador的提名人,但他的日常角色既不涉及Eclipse,也不涉及Java。 他剩下的时间很少,他在年轻的家庭度过,并且如果天气晴朗,他会带他们飞。

翻译自: https://www.infoq.com/articles/eclipse-4-Plug-ins/?topicPageSponsorship=c1246725-b0a7-43a6-9ef9-68102c8d48e1

eclipse4插件开发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值