开发Eclipse插件的基本步骤 插件通过添加到预定义的扩展点来向平台添加功能。要将程序代码变成插件,需要: 决定插件如何与平台集成 标识需要进行添加的扩展点以便与开发者的插件进行集成 根据扩展点的规范来实现这些扩展 提供清单文件plugin.xml,它描述开发者正在提供的扩展以及代码的封装 测试插件 对插件进行封装
插件开发实例 我们将介绍使用Java开发环境开发插件,并在下一个例子中介绍如何直接使用插件开发环境开发插件。 面我们以“Hello,World”为例,作为插件实现,说明如何创建平台插件,其步骤如下:
JDT开发插件—步骤1 使用菜单栏选择“文件”->“新建”->“项目”,打开“新建项目”向导。
JDT开发插件—步骤2 使用向导并以默认方式创建一个Java项目,项目名取为HelloWorld。
JDT开发插件—步骤3 使用菜单栏选择“文件”->“新建”->“文件”,打开“新建文件”向导。
JDT开发插件—步骤4 以默认方式新建一个Java文件,文件名取为HelloWorld.java。
JDT开发插件—步骤5 点击“完成”,创建该文件,并在文件中输入下列代码: import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.SWT; import org.eclipse.ui.part.ViewPart; public class HelloWorld extends ViewPart { Label label; public HelloWorld() { } public void createPartControl (Composite parent) { label = new Label(parent, SWT.WRAP); label.setText (“Hello, World!”); public void setFocus() {
JDT开发插件—步骤6 在包资源管理器窗格中,鼠标右击本项目,从上下文菜单中选择“属性”,指定项目的类路径,编辑配置程序的编译环境。
JDT开发插件—步骤7 在“属性”窗口的左面窗格选择“Java构建路径”,然后在右面的窗格中选择“库”选项卡。
JDT开发插件—步骤8 在“库”选项卡下,点击“添加外部JAR”按钮,添加Eclipse安装目录下的下列三个JAR文件: \plugins\org.eclipse.core.runtime_2.1.1\runtime.jar \plugins\org.eclipse.swt.win32_2.1.0\ws\win32\swt.jar \plugins\org.eclipse.ui.workbench_2.1.0\workbench.jar 注意,随着Eclipse的版本不同,以上文件的路径名可能会有所不同。
JDT开发插件—步骤9 使用“新建文件”向导,以默认方式创建一个XML项目,文件名必须为plugin.xml。
JDT开发插件—步骤10 点击“完成”,创建该文件,并在文件中输入下列代码: <?xml version="1.0" encoding="UTF-8"?> <plugin id="edu.sjtu.plugin" name="HelloWorld" version="1.0" provider-name="Yuntao Zhang"> <runtime> <library name="HelloWorld.jar"/> </runtime> <requires> <import plugin="org.eclipse.ui"/> </requires> <extension point="org.eclipse.ui.views"> <category id="edu.sjtu.plugin.category1"> </category> <view name="HelloWorld1" category="edu.sjtu.plugin.category1" class="edu.sjtu.plugin.HelloWorld" id="edu.sjtu.plugin.view1"> </view> </extension> </plugin>
plugin.xml文件代码的含义: 在plugin.xml中一共有四个主要的标签:plugin、requires、runtime、extension。
plugin标签 其中plugin标签的属性提供的是我们要开发的插件的基本信息,除了name、version、provider-name等,最重要的是id,它要求不能和现有的Eclipse插件标识符有冲突,因此本例中用包名作为插件的标识符。
requires标签 requires标签中所列出的是需要的插件,需要用到Eclipse工作台和SWT API,因此导入了org.eclipse.ui插件。
runtime标签 runtime标签指明的是开发的插件所在JAR包的文件名。
extension标签 extension标签是插件扩展点的信息。 org.eclipse.ui.views是Eclipse系统提供的观察窗口扩展点。 本例是一个观察窗口,这表明将在 org.eclipse.ui.views扩展点上进一步开发。 extension中还包括category和view两个标签,要注意的是category和view标签的标识符的唯一性,并且在view的属性中声明了Welcome插件的类名。
JDT开发插件—步骤11 选择Eclipse菜单栏“文件”->“导出”命令,将HelloWorld项目以JAR文件形式导出到Eclipse安装目录的plugin子目录下的某一目录中,同时将plugin.xml导出到该目录中。
JDT开发插件—步骤12 关闭并重新启动Eclipse。Eclipse启动时,将会搜索所有在插件路径下的插件并注册它们。
JDT开发插件—步骤13 在菜单栏中选择“窗口”->“显示视图”->“其它”,打开“显示视图”窗口。
JDT开发插件—步骤14 “显示视图”窗口中,显示了在plugin.xml中extension的category标签中声明的name属性:HelloWorld,在HelloWorld结点中包含了view(“视图”)标签的name属性:HelloWorld1
JDT开发插件—步骤15 选中HelloWorld1,并点击“确定”按钮,Eclipse中将出现HelloWorld1窗口。
下面将介绍直接使用插件开发环境开发插件的实例。
为何需要使用插件开发环境 在Eclipse中使用常用的Java开发环境就可完成插件的开发,但在插件开发过程中的每次测试都要将代码打包、发布,然后再重新启动Eclipse系统。 为了进一步便于进行插件开发,Eclipse提供了进行插件开发的“插件开发环境(PDE)”。 PDE本身也是插件。
PDE的作用 插件开发环境是一个工具,提供用来自动创建、处理、调试和部署插件的专门工具,使开发插件和扩展更方便、有效。
PDE和平台的集成 与一般平台原理一样,PDE 不是单独启动的工具。 PDE 是作为包含在 SDK 中的一组插件来安装的。 PDE 与平台溶合在一起,并且通过新透视图来提供其功能。PDE 是基于平台和Java 开发工具的。
使用PDE开发插件 下面,我们以开发一个简单的“Hello World”插件为例,介绍如何使用PDE开发插件,其开发步骤如下:
使用PDE开发插件--步骤1 在菜单栏中选择“文件”->“新建”->“项目”,打开“新建项目”窗口。
使用PDE开发插件--步骤2 在“新建项目”窗口中,在左边窗格中选中“插件开发(Plug-in Development)”,并在右边的窗格中相应地选中“插件项目(Plug-in Project)” ,如下图。
使用PDE开发插件--步骤3 点击“下一步”,在新窗口中,输入项目名HelloWorldPlugin。
使用PDE开发插件--步骤4 点击“下一步”,显示“插件项目结构”窗口,采用默认选项 (如下图)。
使用PDE开发插件--步骤5 点击“下一步”,显示“插件代码生成器”窗口 (如下图)。 在“插件代码生成器”窗口中,可以选择“创建空白插件项目”生成一个空插件,也可选择“使用代码生成向导创建插件项目”。 为了说明插件结构,本例使用代码生成向导创建插件项目,并选择“Hello, World”代码生成向导。
使用PDE开发插件--步骤6 点击“下一步”,进入“简单插件内容”窗口,采用默认设置 (如下图)
使用PDE开发插件--步骤7 点击“下一步”,进入“样本操作集”窗口,采用默认设置(如下图) 。 “Hello,World”代码生成向导将创建一个简单的操作集,它将样本菜单添加至菜单栏,并将一个按钮添加至工具栏。 新菜单中的菜单项和按钮都会调用同一个样本操作。其作用是打开一个具有所选择的消息的简单消息对话框。
使用PDE开发插件--步骤8 点击“完成”,完成插件项目的新建。因为所创建的项目与“插件开发”透视图相关联,因此将可自动转到“插件开发”透视图。
使用PDE开发插件--步骤 插件项目生成之后,项目中将会包含一个按默认方式生成的插HelloWorldPluginPlugin.java文件。 因为该项目是一个插件项目,所以点击Eclipse菜单栏中的“运行”按钮旁的下拉箭号,并选择“运行为”->“运行时工作台”。运行后,将生成一个和当前Eclipse几乎完全一致的平台,惟一的差别是在新的Eclipse平台上增加了一个“Hello,Eclipse world”插件(见下图中的工具条上的第5个按钮)。
使用PDE和JDT开发插件的比较 与直接使用Java开发环境相比,使用运行时工作台方式调试插件,无需安装插件并启动运行时工作台,从而大大简化了插件开发的过程。