Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。虽然大多数用户将 Eclipse 用作 Java 集成开发环境(IDE),但Eclipse 还包括插件开发环境(Plug-inDevelopment Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员。
Eclipse的设计思想是:一切皆插件。Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
假设您已具备Eclipse常规开发经验但并未涉及插件开发,现在或未来需要用到Eclipse插件开发技术,推荐您看看“Eclipse插件开发实践系列”。
作为插件开发实践的第一篇文字,本文将引导您完成:
开发Eclipse插件的第一步是配置插件开发环境,Eclipse基金会于2014年6月25日发布了Eclipse4.4版(版本代号Luna),本文将基于该版本进行后续的操作演示。
小贴士:从2006年起,Eclipse基金会每年都会安排同步发布(simultaneous release)。至今,同步发布主要在6月进行,并且会在接下来的9月及次年2月释放出SR1及SR2版本。 |
我们可以从Eclipse官方网站(http://www.eclipse.org/downloads/)上获得不同版本的Eclipse,“Eclipse Standard”和“Eclipse IDE for Java EE Developers”均预置了PDE开发环境。若我们下载安装的Eclipse版本不含PDE环境(例:Eclipse IDE for Java Developers),也可以通过其功能更新站点手动安装(HelpInstall New Software…)。
由于Eclipse是一个标准的Java程序,但它本身并不包含其运行所必需的Java运行环境(Java Runtime Environment,JRE),所以我们首先要安装JRE。
注意:后续实战演练所用机器环境为64位Windows7。 |
JAVA_HOME: C:\Program Files\Java\jdk1.7.0_60
Path: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
ClassPath: .;%JAVA_HOME%\lib;
本文选择了“Eclipse IDE for Java EE Developers”版应用分发包,它包含了Java IDE、Java EE工具、JPA、JSF、 Mylyn、EGit等等一些列功能,可用于创建 Java EE和web应用程序。
在JavaEE版标准功能之外,又安装了Eclipse开发环境相关的部分源码包(CVS Client、JDT、PDE、RCP),这些源码将是我们后续开发工作中最为重要的学习参考资料(使用方法下文介绍)。
小贴士:若需安装Luna的其他标准插件,请在新功能安装主界面中选择Luna更新站点(Luna - http://download.eclipse.org/releases/luna),选择相应功能项安装即可,此处不再累述。 |
上述演练过程采用了“在线安装”的方式添加Eclipse开发环境源码包,也可以采用“离线包”方式,操作步骤如下:
插件开发(Plug-in development)分组下的插件工程(Plug-in Project)用于创建Eclipse插件,我们将使用Eclipse的新建工程向导(New Project)来创建第一个插件工程。除了创建新插件工程外,该向导还具有典型示例代码生成功能,我们可以通过一些不同的选项创建诸如视图、编辑器、操作等插件开发相关的示例代码。
创建插件工程是Eclipse插件开发的第一步,上述演练中我们利用插件工程创建向导(New Plug-in Project Wizard)基于“Hello,World”模板创建了第一个插件工程,演练工程的目录结构如下图所示:
工程项目中包含一系列自动创建的文件,其中META-INF/MANIFEST.MF和plugin.xml是插件工程中最为关键的两个文件,前者是插件功能配置清单(与OSGI对应,定义了插件的依赖项、版本、名称等关键信息),后者是插件扩展项清单,它们定义了当前插件与系统其他部分之间的关系。此外,build.properties也较为关键,它主要用于声明嵌入到插件工程中的各类资源文件(例如:图片),供PDE在开发时和构建时使用。
插件工程成功创建后,META-INF/MANIFEST.MF文件会被清单文件编辑器(Plug-in Manifest Editor)自动打开,可以切换该编辑器底部的选项卡查看工程概览(Overview)、依赖项(Dependencies)、运行时(Runtime)、扩展项(Extensions)、扩展点(Extension Points)、构建选项(Build)、插件清单源码(MANIFEST.MF)、扩展项源码(plugin.xml)、构建选项源码(build.properties)等内容,清单文件编辑器关闭后可通过双击META-INF/MANIFEST.MF文件再次打开。
为了查看插件工程项目的运行效果,我们需要启动一个新的Eclipse实例用于加载相应插件。前文用于演示的com.archopt.rcp.hello工程极为简单,但实际开发过程中我们往往以迭代的方式不断扩充其功能,难免会出现一些运行期错误(开发期的错误Eclipse会用红叉叉帮我们标记出来),所以调试技能(Debug)是必需的。
本节将演示插件工程的运行和断点捕获。
public void run(IAction action) {
String title="com.archopt.rcp.hello";
String msg="Hello, Eclipse Plug-in world";
System.out.println("弹出Hello world 对话框");
MessageDialog.openInformation(window.getShell(),title,msg);
}
注意:演练过程第10步涉及的调试操作与常规Java开发完全一致,此处不再累述。 |
在本节的演练过程中,Eclipse开发实例按照默认配置自动创建了一份启动配置(Configuration),该配置将自动加载“Eclipse开发实例中已安装的插件”和“Eclipse开发实例对应工作区(Workspace)中处于打开状态(Open)的插件工程”。我们可以通过Run菜单下的“Debug Configurations…”菜单项打开启动配置管理对话框(如下图所示),Eclipse Application组下名为“Eclipse Application”的项即为当前演练自动创建的启动配置。
Eclipse插件开发的必备工具之一是插件探测器(Plug-in Spy),它主要用于探测当前Eclipse界面的构成元素,通过快捷键Alt + Shift + F1可以调出其主界面,配合插件源码包使用可以大大提升我们的学习和工作效率。
上述演练我们选中了包浏览器,所以插件探测器(Plug-in Spy)显示的当前激活的视图为PackageExplorerPart,可以选择其他窗口按下Shift+Alt+F1键查看效果。
“开发环境准备”环节我们特意安装了一些源码包,因为其中包括JDT相关源码包(Eclipse JDT Plug-in Developer Resources),所以在演练的第3步才可以看到PackageExplorerPart类的源代码。
插件探测器(Plug-in Spy)还可以通过快捷键Shift+Alt+F2使用。在Eclipse界面中按下Shift+Alt+F1键,鼠标光标将发生改变,此时再点击工具栏按钮或菜单项,同样可以调出插件探测器主界面。
通过本篇内容的学习,我们掌握了Eclipse4.4插件开发环境的搭建技能,接着在搭建好的开发环境中完成了第一个插件工程的创建,最后学习了插件探测器(Plug-in Spy)的使用方法。
Eclipse自带的《Plug-in Development Environment Guide》是非常好的插件开发学习资料,可以通过Help菜单下的“Help Contents”菜单项查看。
pdf全文下载(百度文库):http://wenku.baidu.com/view/c934f5e5f121dd36a32d826f.html
本文采用Creative Commons知识共享(CC BY-NC-SA 3.0 CN)许可协议授权
文章作者:丛兴滋 【[email protected]】
撰写时间:2014年7月【2014年8月16日最后更新】
文档网址:https://code.csdn.net/markcxz/eclipse4_plugin_dev