枫林在线论坛精华区>>程序设计 |
[340899] 主题: Eclipse零起步系列讲座(二) |
作者: little (渺小·Happy^_^) | ||
标题: Eclipse零起步系列讲座(二)[转载] | ||
来自: 192.168.*.* | ||
发贴时间: 2005年04月25日 10:54:19 | ||
长度: 5012字 | ||
Eclipse零起步系列讲座 (二) =========================================== (前言) 今天这篇侧重于eclipse的内部结构剖析,对于想开发插件的同志们,这些都 是基础知识, 可以好好看看. 由于我写这个东西,也是随性发挥,想到什么就写什么. 而 关于eclipse的 如何使用,如何用eclipse来开发一个java项目或其他项目之类的文章, 我 想我会在以后 的文章中写到. 但我想对于要在开发eclipse上开发web项目,c项目或其他 的话,你也要会 自己能安装相应的插件,才能开发,所以,这些基础知识的对于这些人来说还 是很有必要的 . (正文) 上一回我们且说到eclipse的下载,安装,启动. 其中讲到eclipse目录结构 时,你会发现有 两个目录,一个叫plugins,一个叫features,而且你会发觉就这两个目录就 占了整个eclip se项目的9x%的空间,如果少了这两个目录,呵呵,eclipse根本就是空架子. 那这里面到底 存放了些什么东西呢, 让我们来研究一下. [什么是 plug-in] 我们来做一个比喻, 你买了一套新房子,买过来是毛坯房,然后你稍微装修 一下,铺了地板 ,上了墙纸, 当然现在大家都要用家用电器, 没电咋行, 所以我们就要布好 电线,装好电 源插座. 这个时候,你可以把这个房子想像成eclipse这个平台. 之后, 我 们或许就要添 置家用电器了,比如电视, 音响等等, 等我们买好回家, 然后把电源往插座 上一插, 那我 们就抱着孩子, 搂着老婆, 看电视, 听音乐, 舒舒服服的过上幸福美满的 小生活了~~~ 同样的, eclipse的plug-in 也是同样的工作原理, plug-in 只要放到< ;ECLIPSE_HOME>/p lugins目录下, eclipse启动后就会自动给所有在这个目录下的plug-ins, 通上电, 那这 些plug-ins就会自动的运行起来, 美妙的eclipse界面也随之呈现在你眼前 . 那接下来,让我们看看eclipse这个由插件组成的平台,到底是个什么样的架 构 [Eclipse 平台架构] --------------------------------------------- | Eclipse Platform | ------ -- | | --- | | | ----------------------- ------------ |==| _ |______| JDT | | |Workbench | | | |==| | | | | | | | | | ---/ ------ -- | | | | | | | | ---------------| | Help | | | | | jface | | | | | |----------- | | | | | | SWT | | | | | | | | | ------------ | | ----------------------- | | ------------ | ------ -- | ------------------ | | | --- | | | |Workspace | | | |==| _ |______| PDE | | | | | Team | |==| | | | | ------------------ | | | ---/ ------ -- | | | | | ------------ | --------------------------------------------- Eclipse Platform 就是一个房子, workbench,jface, swt, workspace, help, team, jdt, pde都是基于这个平台的插件. 下面我介绍一下这些基础插件的基本功能: *: workbench用来控制工作台, 负责控制工作台上包括菜单,视图,透视图 等等的控制和 操作 *: SWT是一个类似AWT,SWING的java组件,是一个轻量级的组件,而且和awt ,swing不同的 是,它底层实现不是基于jre,而是根据不同操作系统,有相应的动态链接库 实现,所以作出 来的效果很专业, SWT主要用于workbench的ui绘制 *: jface是基于SWT的一个插件, 对SWT进行了封装, 封装实现了对话框, 视图等东东 *: workspace是用来控制工作区的,(有别于工作台), 包括对工作区内的项 目的控制,删 除,添加,编译项目资源等等都由它来控制 *: help是一个eclipse帮助系统, eclipse的菜单->Help-> Help C ontent,就可以打开这 个帮助系统, 这个系统不是封闭的, 可以进行扩展(以后会介绍做eclipse 帮助的插件) *: team是一个cvs系统,可以和CVS server协调使用,进行版本控制 *: jdt 是 Java Development Tools, 开发java的插件 *: pde 是 plug-in development environment, 开发插件的平台 [plug-in 的基本结构] 每一个plug-in都用一个目录包起来, 而且起目录名也是有讲究的,比如pl ug-in的名字叫 edu.sjtu.bbs.eclipse,版本是1.0.0, 那这个目录名就是edu.sjtu.bbs.e clipse_1.0.0. 而且随便打开一个plugin目录,可以发现总有一个文件叫一个叫plugin.xm l,这个文件对 于plugin来说十分重要, 它相当于定义了plugin的运行参数,没有这个,pl ugin无法启动, 就像你家的电冰箱如果不知道是用110V还是220V的,你也不敢乱往插座上插 ,所以总要有 个说明,这个说明就是plugin.xml. 至于这个文件有些什么具体结构,我想 在以后介绍编 写插件的时候,我会详细介绍. [什么是 feature] feature是功能部件,它里面没有实际的运行的库,它只是eclipse用来管理 plugins的一种 途径. 比如你家装了电灯,总要有开关控制把,比如大堂的灯有一个开关控 制, 卧室的灯 也有一个开关控制, 它们分别用来控制灯的亮与灭. 同样,功能部件就是用来控制插件的启动与否. eclipse的update透视图可 以设定各个功 能部件的启用或禁用状态, 所以你可以通过禁用功能部件,来禁止插件的启 动. 这样有一 个好处,比如你装了很多插件在eclipse上,但是装的越多,加载就越多,启动 也会变慢, 你 不信的话,可以玩玩wsad, 就知道我说的话不是假的了. 所以,我们可以把功能部件看作是插件或插件集合的开关, 用来控制插件的 状态. 如果pl ugins目录有插件没有被任何一个功能部件包络的话, 我称之为"野插 件", 就是eclipse 启动,它也一定会启动, 就相当于没有开关, 电源一直连通一样. 当然,功能部件还有很多其他方面的用处,以后会有详细介绍. |
||
========== * * * * * ==========
|
返回 |