- 浏览: 242494 次
- 性别:
- 来自: 火星
文章分类
最新评论
-
vinalice:
在国内不能用,真遗憾
机器人'机皇' HTC EVO 4G -
songshuang:
您好~诚挚邀请您加入ITeye HTML5群组,交流分享HTM ...
Html5 -
xfei6868:
有没有用过哪个具体的服务实现过,比如 juddi, openu ...
UDDI -
justdo2008:
你好,请问如果用Python 做webgame怎么样呢?
Python web 框架 Django1.2版 -
coolspeed:
谷歌一直就想网罗全世界的信息。进化成天网或者viki的东西?
...
Google在搞什么?思维信息化?
[文章信息]
作者:
陶刚编译
时间:
2005-04-18
出处:
天极网
责任编辑:
方舟
[文章导读]
实现特定的事务永远需要使用恰当的工具
刚才我在修理自己的汽车,我需要拧下一个螺丝。于是我打开自己的扳手工具包,试图找到合适的扳手。但是那些扳手的型号都不对,因为那个螺丝都属于公制标准的。我只能使用与理想尺寸最相近的扳手。这是一个不好的想法;结果我把那个螺丝弄裂了,只好去买一个专用的工具来下掉它。这个故事的精髓是:实现特定的事务永远需要使用恰当的工具。
Eclipse是一个非常流行的Java集成开发环境(IDE),它是NetBeans/SunOne Studio、Jbuilder、和IntelliJ IDEA的强有力的竞争者。Java程序员群体正在迅速地迁移到Eclipse上,因为它是免费的、开放源代码的、质量很好,而且非常容易定制。
本文的内容是如何在Eclipse中编写插件(plugin)。本文的目标读者是哪些人呢?很多Eclipse用户简单地使用IDE而不需要进行定制;很多人会使用他人建立的插件,这些人不是本文的目标读者。有些用户希望定制Eclipse;有些人将为他们公司的雇员开发工具;有些人希望销售与自己的产品相关的工具;还有一些人希望使用其它名称转售预安装了某些工具的Eclipse。这些人组成了本文的目标受众。开始编写Eclipse插件的前提条件是了解如何使用Eclipse和编写Java程序,并且对标准Widget工具包(SWT)有很好的理解。
安装Eclipse
如果你已经使用了Eclipse 3,那么可以跳过这一段落。如果没有安装该软件,你首先需要下载和安装它。你可以简单地从Eclipse下载页面下载最新的稳定版本,接着把下载的文件解压到一个文件夹中(例如c:\dev)。在写作本文的时候,这个文件是eclipse-SDK-3.0.1-win32.zip(85MB)。这个过程会建立c:\dev\eclipse文件夹。
请注意,在这个文件夹下已经有一个叫做plugins的文件夹了。你可以快速浏览一下,会发现很多的已经安装好的插件。这是怎么回事呢?因为Eclipse的核心相对较小,几乎每个部分都是一个插件。
架构
Eclipse由一个很小的核心和核心之上的大量插件组成。有些插件仅仅是供其它插件使用的库。其中存在很多你可以利用的工具。所有插件使用的基础库是:
· 标准Widget工具包(SWT):Eclipse中处处使用的图形化组件:按钮,图像、光标、标签等等。布局管理类。通常这个库被用于代替Swing。
· JFace:菜单、工具条、对话框、参数选择、字体、图像、文本文件的类和向导基类。
· 插件开发环境(PDE):辅助数据操作、扩展、建立过程和向导的类。
· Java开发者工具包(JDT):用于编程操作Java代码的类。
上面的每一个类都有自己专有的功能,其中一些还可以单独使用(尽管它们内在地依赖于其它类)。例如,SWT不仅仅只用于插件;它还可以被用于建立非Eclipse的、独立的应用程序。还有一些其它的库没有被列举出来。
图1显示了Eclipse不同层次之间的关系。
建立一个简单插件
建立插件最简单的办法是使用文件-> 新建->插件项目向导所提供的模板。接着输入一个项目名称(例如"Invokatron")。这是什么意思呢?我们将建立的插件是Invokatron,它是一个供Java代码使用的代码生成图形化编辑器。本文删除了Invokatron的路径,但是很明显这个雄心勃勃的项目直到下次安装时才会完成。
在"下一步"页面上,除了类名之外其它的选项都不变,类名输入invokatron.InvokatronPlugin。在"插件内容"页面上,输入你认为适合的任何信息。在"模板"页面上,选中检查框以激活模板。我们可以在多个模板中进行选择:
· Hello, World
· 简单的XML编辑器
· 多页面编辑器和向导
· 透视图扩展
· 弹出菜单
· 属性页面
· 视图
· 拥有前面的一个或多个数据项的自定义插件
对于本文的示例,我们使用自定义插件模板。选择"多页面编辑器"-"新建文件向导"-"属性"页面。在"下一步"页面输入下面一些值:
"多页面编辑器"页面(图3所示):
· Java程序包名称:invokatron.editor
· 编辑器类名称:InvokatronEditor
· 编辑器辅助类名称:InvokatronEditorContributor
· 编辑器名称:Invokatron Editor
· 文件扩展名:invokatron
图3:"多页面编辑器"设置 |
"新建向导"页面(图4所示):
· Java程序包名称:invokatron.wizard
· 向导类别ID:Invokatron
· 向导类别名称:Invokatron Wizard
· 向导类名称: InvokatronWizard
· 向导页面类名称:InvokatronWizardPage
· 向导名称:Invokatron Wizard
· 文件扩展名: invokatron
· 初始文件名: MyClass.invokatron
图4:"新建向导"设置 |
"属性"页面(图5所示):
· Java程序包名称:invokatron.properties
· 属性页面类: InvokatronPropertyPage
· 属性页面名称:Invokatron Properties
· 目标类:org.eclipse.core.resources.IFile
· 文件名过滤器:*.*
图5:"属性"页面设置 |
这个时候Eclipse生成了大量的文件:
· plugin.xml:描述该插件的主文件。它包含了辅助代码生成、库、插件依赖关系和扩展指向的一些信息。
· build.properties:用于描述建立(build)过程的文件。它主要用于指定需要的库。
· invokatron/*.java:插件类。
· sample.gif:菜单项显示的图标。
plugin.xml文件和build.properties一起被显示在多页面编辑器中。第一个页面("预览")允许你在测试环境中导出和运行该插件。"导出"的意思是通过生成一些代码、接着编译和打包来完善该插件。
查看一下类,你会发现它实际上没有做什么操作。添加菜单选项的代码在哪儿呢?框架组件从plugin.xml文件包含的信息中简单地生成了必要的代码。你可以查看一下这个文件。它的最后一部分包含了一个扩展列表,这是这些类可以插入Eclipse的地方。
上面过程中产生的项目是示例代码的一部分,你可以下载。
运行和调试
你可以在一个特殊的沙盒(sandbox)--运行时工作台(runtime workbench)中测试自己的插件。使用这种方式的时候,即使运行时工作台崩溃了,Eclipse仍然能够工作。通过点击"预览"页面上的"载入运行时工作台"或"在调试模式中载入运行时工作台"链接。第一次运行运行时工作台的时候,会建立eclipse\runtime-workbench-workspace文件夹。它会启动一个新的Eclipse实例,该实例与正常的Eclipse窗口非常相似(除了你的插件可以使用了之外)。
但是你还是首先选择文件 -> 新建 -> 项目菜单和Java项目来建立一个Java项目。这个项目的名称叫做Test。图6显示了带有我们建立的向导和编辑器的运行时工作台。
图6:运行该插件 |
现在我们看一下Invokatron向导。从菜单文件->新建 -> 其它 可以看到它。查看类别Invokatron向导。选择Invokatron向导,接着点击"下一步"。这个向导会建立一个空的Invokatron文档。在Container(容器)字段中选择Test项目并点击"完成"。一个新的Invokatron编辑器显示出来了。这个编辑器有三个页面:一个文本编辑页面、一个属性页面(字体选择)和一个预览页面(排序的、用选择的字体绘制的)。
支持文件
你可以在很多位置指定自己的插件在编译和运行时所需要的文件。这使我们这些Eclipse用户感到很困惑。我们试图澄清这些问题。
支持文件分为三类:
1、来自插件代码自身的类和资源。它们在建立过程中就会被打包为一个或多个.jar文件。
2、编译和运行插件所需要的类和资源。它们都应该被包含在类路径中,并且我们必须指明在导出的时候需要复制这些文件。
3、与插件一起包含进来的文件(例如readme.txt文件)。它们不在类路径中。
在插件编辑器的"建立(Build)"页面中可以设置编译环境。此外,这些设置会映射为build.properties文件。在第一次看到这个页面的时候我们可能会感到困惑,因为它有四个分开的部分:
· 运行时信息:列出了生成的库文件(第1类文件)。通常,在一个库文件中包含了插件所需要的所有类,但是你可能希望把它分割成更小的块。
· Source Build:列出应该被包含到.jar文件中的类文件(第1类文件的输入)
· Binary Build:列出应该被复制到导出的插件文件夹或档案文件中的文件(第3类文件)。上面的选择框被选中的时候,生成的文件会被自动地包含进来。
· 精确的类路径项:列出了在编译时刻你的应用程序所需要的.jar文件(第2类文件)。这些文件会被自动地添加到你的项目库中。我们通常容易犯的一个错误是在"属性"页面中的"Java建立路径"中和这个列表中同时包含了某个.jar文件。
如果你的插件使用了某个特殊的库,就必须确保把这个库添加到项目中。接着把它添加到Source Build和精确的类路径项中。
插件编辑器的其它一些重要的属性页面有:
· 依赖关系(Dependencies):如果你的插件依赖于其它的插件,你就必须在这儿指定。
· 运行时(Runtime):在这个属性页面中你可以为插件指定特殊行为。
导出
插件编码完成了,并且在工作台中测试过之后,就该准备部署到"真实的" Eclipse环境中了。要实现这个步骤,需要返回"预览"页面并点击"导出向导"链接。"导出选项"对话框允许你从三种部署类型中选择一个:
· 目录结构:把文件部署到一个目录中供Eclipse立即使用。接着你可以把目标位置(Destination)设置为本地的Eclipse文件夹(例如c:\dev\eclipse),直接地使用插件。
· 单个.zip文件:相同的文件夹会被压缩为一个.zip文件,准备好发布给客户。接下来,你必须把这个文件解压到Eclipse最上层的文件夹来安装插件。你必须在文件名字段中指定.zip文件名。
· 更新站点使用的独立.jar文档文件:产生一个与Eclipse用于自动更新系统相兼容的.jar文件。
你点击"完成"之后,会生成我们选中的输出。如果你把输出作为目录结构,就必须重新启动Eclipse以激活该插件。
查看示例和源代码
关于如何编写Eclipse插件的最好信息来源是Eclipse所提供的插件示例集。如果我只能选择一个辅助自己编写插件的信息来源,我一定选择它。
如果你要下载这些插件,只需要访问Eclipse下载页面并选择最新的版本。接着看这个页面的中间,有一个"示例插件",请下载这些.zip文件(小于2MB)。把这些文件解压到Eclipse所在的文件夹(例如c:\dev)中。这个步骤会在eclipse/features和eclipse/plugins下建立很多文件夹。这些示例的源代码在C:\dev\eclipse\plugins文件夹的大量.zip文件中,如下所示:
示例 | 代码位置 |
SWT示例 | 在org.eclipse.sdk.examples.source_3.0.1\src...文件夹下 |
独立的 | |
· 地址薄 · 剪贴板 · 文件查看器 · Hello World · 悬浮帮助 · 图像分析器 · Java语法查看器 · 文本编辑器 |
...\org.eclipse.swt.examples_3.0.0\swtexamplessrc.zip 与工作台集成的 |
· 浏览器 | ...\org.eclipse.swt.examples.browser_3.0.0\ browserexamplesrc.zip |
· 控件 | ...\org.eclipse.swt.examples.controls_3.0.0\controlssrc.zip |
· SWT载入程序 | ...\org.eclipse.swt.examples.launcher_3.0.0\launchersrc.zip |
· 布局 | ...\org.eclipse.swt.examples.layouts_3.0.0\layoutssrc.zip |
· 绘图 | ...\org.eclipse.swt.examples.paint_3.0.0\paintsrc.zip |
· OLE | 特殊文件夹: org.eclipse.sdk.examples.source.win32.win32.x86_3.0.1\ src\org.eclipse.swt.examples.ole.win32_3.0.0\ olewin32src.zip |
工作台示例 | |
· Java编辑器 | ...\org.eclipse.ui.examples.javaeditor_3.0.0\ javaeditorexamplesrc.zip |
· 模板编辑器 | ...\org.eclipse.ui.examples.javaeditor_3.0.0\ templateeditorexamplesrc.zip |
· 多页面编辑器 | ...\org.eclipse.ui.examples.multipageeditor_2.1.0<\ multipageeditorsrc.zip |
· 属性表 | ...\org.eclipse.ui.examples.propertysheet_2.1.0\ propertysheetsrc.zip |
· Readme工具 | ...\org.eclipse.ui.examples.readmetool_2.1.0\readmetoolsrc.zip |
帮助示例 | 特殊文件夹: org.eclipse.help.examples.ex1_3.0.0(没有Java文件;HTML在doc.zip之中) |
Team示例 | |
· 知识库提供程序 · 同步共享 |
...\org.eclipse.team.examples.filesystem_3.0.0\ teamfilesystemsrc.zip |
文件比较示例 | |
· 结构比较 | ...\org.eclipse.compare.examples_3.0.0\ compareexamplessrc.zip |
· XML比较 | ...\org.eclipse.compare.examples.xml_3.0.0\ xmlcompareexamplessrc.zip |
还存在一些GEF和Draw2D插件的有用示例。你可以访问GEF页面并下载最新版本。在版本发布页面中间有"GEF示例",请下载该.zip文件。在写作本文的时候,该文件是GEF-examples-3.0.1.zip(0.5MB)。把这个文件解压到Eclipse所在的文件夹中。你将看到下面两个示例:
示例 | 代码位置 |
· 逻辑图表示例 | org.eclipse.gef.examples.source_3.0.1\src\ org.eclipse.gef.examples.logic_3.0.0\logicsrc.zip |
· 流图表示例 | org.eclipse.gef.examples.source_3.0.1\src\ org.eclipse.gef.examples.flow_3.0.1\flowsrc.zip |
查找插件开发的信息
你首先查看的位置应该是本文前面部分中的示例。其次还有帮助系统,它的质量也非常高。相关的内容还有:
· 平台插件开发
· JTD插件开发
· PDE指导
· Draw2D开发者指导
· GEF开发者指导
结论
现在你已经有了建立Eclipse图形化插件的足够信息了。有了这么多类库的帮助,只有你的想象力会限制你的作为了。其秘诀在于你要知道自己能够使用那些工具,并且使用正确的工具完成适当的工作。
图1:分层的类库 |
安装GEF和Draw2D运行时
在默认情况下,这两个面向对象的库(图形化编辑器框架组件GEF和Draw2D)是没有被安装的。在本文中我们需要利用它们,因此首先需要安装它们。你可以在GEF主页面下载GEF和Draw2D,下载3.0.1或以后版本,把文件保存为GEF-SDK-3.0.1.zip(5.5MB)。把这个文件解压到Eclipse文件夹下(这是包含plugins子文件夹的文件夹)。这两个库自身也是作为插件加进来的。
这些库提供了什么样的功能?它们构成了建立图形化插件的基础。图形化插件通常显示一些对象(例如方框和标签,用线和箭头链接在一起)。这些对象和连接器的绘制都是由Draw2D来处理的。但是绘制过程仅仅是图形化编辑器实现的一半功能。另一半--编辑器命令、工具条、拖放功能、打印--由GEF来完成。
配置PDE选项
安装上述的各种部件之后,下一步就是定制或至少是熟悉插件配置选项。这些选项在菜单窗体 -> 选项的"插件开发"类别下选择。浏览一下插件用到的数以十计的配置选项。你可以特地看一下Target Environment(目标环境)类别。它允许我们选择默认的操作系统、视窗(windowing)系统、CPU架构和语言。
我们感兴趣的还有Plug-in Development(插件开发)透视图(透视图是一组视图参数选择,包括面板、视图、工具条等等,根据不同的事务发生改变,可以把它看出Eclipse中的"模式")。通过选择菜单中的窗口-> 打开透视图 -> 其它,然后在列表中选择"插件开发"就可以看到它了。它与Java透视图相似,但是拥有一个插件视图,可以显示所有检测到的插件。图2显示了如何激活这个透视图,并显示了该透视图。
图2:插件开发透视图 |
发表评论
-
网络上的攻防
2011-01-19 16:34 779:伊朗核计划和网络战的 ... -
LTE
2010-07-11 21:47 869LTE是英文Long Term Evo ... -
PHPWind
2010-07-09 22:23 1538PHPWind(简称:PW)是一个基于PHP和MySQL的论坛 ... -
搜索引擎
2010-07-06 22:58 890乔建秀,国内早期 ... -
html5'帆布'的简单效果截图
2010-06-30 13:28 1287中文 Introduction HTML5 canvas ... -
Html5
2010-06-22 00:28 3006现在的 HTML5 就像当年崭 ... -
BPOS
2010-06-16 14:57 783Business Productivity Onli ... -
全程电子商务
2010-06-13 16:49 9442010年6月10日,由工业和 ... -
Java SE 6 脚本引擎
2010-05-28 14:41 897Java SE 6最引人注目的新功能之一就是内嵌了脚本支持。在 ... -
TIBCO
2010-05-28 12:56 1067TIBCO(NASDAQ:TIBX)是一 ... -
美国科学家制造出纳米机器人
2010-05-22 13:41 1031国际在线专稿,据《每日邮报》5月13日报道,美国哥伦比亚大 ... -
ECMA
2010-05-01 23:18 762European Computer Manufacture ... -
外包需要什么样的人
2010-05-01 05:17 980据统计,在金融危机的 ... -
AOP
2010-04-29 18:53 937前言: 提到AOP,便不得不提到两个产品,一个是Bea赞助的 ... -
UDDI
2010-04-25 04:10 992UDDI (统一描述、发 ... -
IEEE
2010-04-24 04:18 1024Institute of Electrical a ... -
RUP
2010-04-23 22:00 771来自百度 RUP ... -
TDD & XP
2010-04-20 01:10 520TDD,Test-Driven Development的简写。 ... -
Microsoft .NET Micro Framework SDK Version 3.0
2010-04-16 18:54 9932008/10/26 Microsoft .NET Micr ... -
WM 今日插件
2010-04-10 18:00 976点睛工作室 刚买了夏新 N810,这是我使用的第一个智能 ...
相关推荐
Eclipse插件开发学习笔记将带领我们深入了解Eclipse插件开发的方方面面。 首先,我们需要了解Eclipse插件的基础概念。在Eclipse中,插件主要由一系列的扩展点(Extension Points)组成,这些扩展点定义了插件可以...
本文将深入探讨Eclipse插件开发的相关知识点,结合提供的"全书分为4篇共24章"的学习笔记和源码,帮助你更全面地理解和实践Eclipse插件开发。 第一篇:基础篇 在这一篇中,你将学习到Eclipse插件开发的基础知识,...
《Eclipse插件开发(第3版 - 高清)》是关于Eclipse平台扩展开发的一本经典著作,由[美] Dan Rubel撰写,并由陈沛等人翻译,ISBN为978-7-111-30336-7。这本书深入浅出地介绍了如何利用Java、SWT和JFace技术来构建...
《Eclipse插件开发》由浅入深、有重点、有针对性地介绍了Eclipse插件开发技术,全书分为4篇共24章。第一篇介绍Eclipse平台界面开发的基础知识,包括SWT控件的使用、界面布局、事件处理等内容;第二篇是插件开发核心...
Eclipse插件开发教程PPT是针对开发者设计的一份详细教学材料,旨在帮助他们了解并掌握如何利用Eclipse平台进行插件开发,从而定制自己的开发环境。以下是基于这个教程的几个关键知识点: 1. **Eclipse插件体系结构*...
本资料包包含了从基础到高级的Eclipse插件开发教程,覆盖了开发过程中的关键知识点,旨在帮助开发者深入理解和实践Eclipse插件的开发。 首先,我们来看《Eclipse插件开发 学习笔记 第1篇 开发基础》。这一部分通常...
Eclipse插件开发是提高工作效率和个性化开发环境的重要方式,因此掌握Eclipse插件开发方法具有重要的实用价值。 从提供的内容来看,书籍《Eclipse插件开发方法与实战》可能是一本系统地介绍Eclipse插件开发的实战...
从提供的文件内容中,我们可以提取出关于Eclipse插件开发的多个知识点。 首先,Eclipse是一个用Java编写的开源集成开发环境(IDE),而Eclipse插件开发是指通过编写插件来扩展Eclipse的功能,实现从一个基本的代码...
标题中的"使用Eclipse插件开发环境构建模板"是指在Eclipse中开发自定义模板,这些模板能够帮助开发者快速生成常见的代码片段或项目结构,从而节省手动编写的时间。模板系统是Eclipse IDE的一大特色,允许用户定制...
《Eclipse插件开发(原书第3版)(畅销插件开发指南新版)》既包含了开发Eclipse插件的基础理论,也涵盖了大量关于Eclipse插件开发的细节。 《Eclipse插件开发(原书第3版)(畅销插件开发指南新版)》不仅适用于Eclipse插件...
标题中的“Eclipse插件开发方法与实战”告诉我们文档的主题是关于Eclipse这个集成开发环境(IDE)的插件开发。Eclipse是一个功能强大的开源IDE,最初由IBM开发,用于Java语言开发,但后来支持了其他多种编程语言和开发...
Eclipse插件开发系列主要涉及的是如何利用Eclipse平台进行扩展和定制,使其满足特定的开发需求。Eclipse作为一个开放源代码的集成开发环境(IDE),具有强大的可扩展性,其核心架构支持通过插件机制来增加新功能或...
神州数码作为一家专注于IT服务的公司,可能会对Eclipse插件开发有深入的需求,因此在面试过程中,掌握Eclipse插件开发技术是非常重要的。下面将详细介绍Eclipse插件开发的相关知识点。 一、Eclipse插件体系结构 ...
本学习笔记主要涵盖了Eclipse插件开发的基础知识,旨在帮助初学者掌握如何利用Eclipse平台进行插件开发。 首先,我们需要理解Eclipse平台的核心架构。【1第1章 Eclipse平台简介.pdf】会详细讲解,Eclipse基于OSGI...
Eclipse插件开发是Java开发领域中的一个重要分支,它允许开发者通过扩展Eclipse IDE的功能来创建自定义的工作环境。这份“Eclipse插件开发笔记源码”提供了丰富的学习材料,帮助开发者深入理解并实践Eclipse插件开发...
在Eclipse插件开发中,首先要了解的是Oxygen(早期版本称为PDE,Plugin Development Environment),这是Eclipse用于创建、调试和管理插件的工具集。通过PDE,开发者可以使用XML描述符(plugin.xml)定义插件的元...
总之,Eclipse插件开发是一个充满挑战和机遇的领域,掌握了其核心原理和技术要点后,开发者可以为Eclipse添加无限可能,满足各种开发需求。无论是初学者还是经验丰富的开发者,都能在Eclipse插件开发中找到乐趣和...