枫林在线论坛精华区>>程序设计
[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
启动,它也一定会启动, 就相当于没有开关, 电源一直连通一样.

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


========== * * * * * ==========
返回