呓语的博客

不管前面的路有多艰辛多长,只要怀着一颗执着的心。成功就离你不远了!
posts - 43, comments - 2, trackbacks - 0, articles - 1

Eclipse零起步系列讲座 (二)

Posted on 2006-01-18 11:30 呓语的博客 阅读(207) 评论(0)  编辑  收藏 所属分类: Eclipse
(前言)
今天这篇侧重于eclipse的内部结构剖析,对于想开发插件的同志们,这些都是基础知识,
可以好好看看. 由于我写这个东西,也是随性发挥,想到什么就写什么. 而关于eclipse的
如何使用,如何用eclipse来开发一个java项目或其他项目之类的文章, 我想我会在以后
的文章中写到. 但我想对于要在开发eclipse上开发web项目,c项目或其他的话,你也要会
自己能安装相应的插件,才能开发,所以,这些基础知识的对于这些人来说还是很有必要的
.

(正文)

上一回我们且说到eclipse的下载,安装,启动. 其中讲到eclipse目录结构时,你会发现有
两个目录,一个叫plugins,一个叫features,而且你会发觉就这两个目录就占了整个eclip
se项目的9x%的空间,如果少了这两个目录,呵呵,eclipse根本就是空架子. 那这里面到底
存放了些什么东西呢, 让我们来研究一下.

[什么是 plug-in]

我们来做一个比喻, 你买了一套新房子,买过来是毛坯房,然后你稍微装修一下,铺了地板
,上了墙纸, 当然现在大家都要用家用电器, 没电咋行, 所以我们就要布好电线,装好电
源插座. 这个时候,你可以把这个房子想像成eclipse这个平台. 之后, 我们或许就要添
置家用电器了,比如电视, 音响等等, 等我们买好回家, 然后把电源往插座上一插, 那我
们就抱着孩子, 搂着老婆, 看电视, 听音乐, 舒舒服服的过上幸福美满的小生活了~~~

同样的, eclipse的plug-in 也是同样的工作原理, plug-in 只要放到/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 Content,就可以打开这
个帮助系统, 这个系统不是封闭的, 可以进行扩展(以后会介绍做eclipse帮助的插件)
*: team是一个cvs系统,可以和CVS server协调使用,进行版本控制
*: jdt 是 Java Development Tools, 开发java的插件
*: pde 是 plug-in development environment, 开发插件的平台

[plug-in 的基本结构]

每一个plug-in都用一个目录包起来, 而且起目录名也是有讲究的,比如plug-in的名字叫
edu.sjtu.bbs.eclipse,版本是1.0.0, 那这个目录名就是edu.sjtu.bbs.eclipse_1.0.0.

而且随便打开一个plugin目录,可以发现总有一个文件叫一个叫plugin.xml,这个文件对
于plugin来说十分重要, 它相当于定义了plugin的运行参数,没有这个,plugin无法启动,
就像你家的电冰箱如果不知道是用110V还是220V的,你也不敢乱往插座上插,所以总要有
个说明,这个说明就是plugin.xml. 至于这个文件有些什么具体结构,我想在以后介绍编
写插件的时候,我会详细介绍.

[什么是 feature]

feature是功能部件,它里面没有实际的运行的库,它只是eclipse用来管理plugins的一种
途径. 比如你家装了电灯,总要有开关控制把,比如大堂的灯有一个开关控制, 卧室的灯
也有一个开关控制, 它们分别用来控制灯的亮与灭.
同样,功能部件就是用来控制插件的启动与否. eclipse的update透视图可以设定各个功
能部件的启用或禁用状态, 所以你可以通过禁用功能部件,来禁止插件的启动. 这样有一
个好处,比如你装了很多插件在eclipse上,但是装的越多,加载就越多,启动也会变慢, 你
不信的话,可以玩玩wsad, 就知道我说的话不是假的了.
所以,我们可以把功能部件看作是插件或插件集合的开关, 用来控制插件的状态. 如果pl
ugins目录有插件没有被任何一个功能部件包络的话, 我称之为"野插件", 就是eclipse
启动,它也一定会启动, 就相当于没有开关, 电源一直连通一样.

当然,功能部件还有很多其他方面的用处,以后会有详细介绍.


只有注册用户登录后才能发表评论。


网站导航: