(前言)
Eclipse这个新的东东,大家都很感兴趣,为了帮助初学者揭开Eclipse的神秘面纱,也为了
总结一下自己的使用开发经验,所以打算写下来共享给大家,当然我也是在不断的摸索中,
文中如有不对之处,还望大家指正.
(正文)
Eclipse项目是IBM在2001年捐献的一个开发平台,当时此项目评估价值为40million
USD. 此东东如此值钱,可见自是有过人之处. 接下来直接转入正题, 哪里可以下到Eclip
se呢.
[Eclipse 下载]
下载Eclipse的官方网站:
http://www.eclipse.org/downloads/
这个网站上有很多mirror,你可以根据网路,选择自己最方便的下载mirror
如果你在交大的校园的话,呵呵,那就去这里
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
启动,它也一定会启动, 就相当于没有开关, 电源一直连通一样.
当然,功能部件还有很多其他方面的用处,以后会有详细介绍.
Eclipse零起步系列讲座 (三)
===========================================
(前言)
根据上一讲,你或许大概已经了解了Eclipse的组成,以及大致的运行机理. 这篇文章, 将
开始带您使用eclipse.
(正文)
[Eclipse的工作台使用指南]
这部分要写的话,其实要写很多,而且最好方式则是图文并茂,最好再有演示. 我这里只是
给一些总体的介绍,并给予一些使用上的指导. 个人感觉,如果你从来
没碰过eclipse, 启动之后,最好先看一下help, 这样会比较好.
具体的操作步骤是这样的, 启动eclipse后, 选 菜单里的help-> help contents, 此时
会弹出一个新的窗口,就是eclipse的帮助窗口, 这个窗口的左边是一个导航
条,选择Workbench User Guide, 里面分为Getting Started, Concepts, Tasks 和Refer
ence. 可以先看一下 Getting Started里面的Basic Tutorial. 这份
tutorial可以在最短的时间内,让你熟悉eclipse的工作台.
其实,eclipse平台ui方面有这几个组件: 菜单, 工具栏, 视图, 透视图, 编辑器
菜单和工具栏不用说了, 地球人都知道的, 视图就是view, 比如 Navigator, Outline,
Tasks 等等都是视图, 每一个视图都有自己相应的功能,你可以参看
workbench user guide来了解这些视图. 编辑器,就是editor, 比如有开发java的编辑器
, 编写文本的编辑器,等等, 最后还有一个叫透视图, 英文是perspective,
这个东东其实是不同的view,menu,toolbar,editor的排列组合. 比如你开发java, 你经
常会用到package explorer, tasks, outline等view和编写java的editor,
以及适合开发java的菜单(Source和Refactor), 那它就会布局一个适合开发java的透视
图, 以此类推.
下面我介绍一下常用菜单项:
+ File
- New: 新建文件,项目,或者其他都是从这里进入
- Import: 这个也是很有用的,比如别人开发的eclipse项目,你copy到
你机器上,可以通过import把这个项目导入工作区
- Export: 这个是导出功能, 比如你开发了一个项目,最后想导出一个
运行库,jar包之类的都可以用这个,这样你就不用自己手动的去把那些class
文件打包了
+ Window
- New Window: 你如果觉得在一个window下开发东西太挤的话,可以再开一
个,等于冒出两个workbench,其实操作的resource都是一样的.
- Open Perspective: eclipse有很多透视图如resource, java, java
browsing, cvs, debug等等,你可以根据当前开发的需要,选择你要的透视图进行开发
- Open View: 透视图毕竟有限,不可能把所有的view都帮你开好, 所以你
如果发觉你要用某一个view,但是它没有开,就用这个选项
- Customize Perspective: 毕竟每个人都有自己的习惯, 你觉得这个透视图用
的不爽, 可以自己定制的
- Reset Perspective: 给你定制的一塌糊涂, 唉, 没办法, 还原成老样子把,
就用这个
- Preference: 这个是非常重要的选项, 偶是没事就进去改的, 它保存了
很多配置方面的东西, 比如字体, 快捷键设置, 很多很多方面都要用到这个
的, 这个东西的详细介绍, 会稍后介绍.
+ Help
- Welcome: eclipse很多插件都做了welcome page,这个page对很多初学
者来说,很有用的,否则很多情况下,新的东西是无从下手的.
- Help Content: 前面讲过了,用来启动帮助系统
- Update: 这个以后会具体介绍
- About Platform: 你可以从这里了解你装了哪些features和plugins
[利用 eclipse 开发简单的 java 程序]
好了,我们一起step by step来学一下把, 很easy的
1. 菜单 new -> project, 然后在new project 对话框里选 java ->java project, 按n
ext 按钮
2. 输入 project 的名字, 按 next 按钮, 当然如果你不想把项目的根目录建在默认的
地方,也可以取消掉use default ,然后自己设定目录
3. 之后就 finish 把, 都用默认配置
4. 如果你没有在java透视图下面,它会提示你是否跳到java透视图,选择是
5. ok 一个项目就建好了
6. 之后,你就可以 new class 开始写java程序了
7. 比如你的new一个class,如下
public class A{
public static void main(String args[]){
System.out.println("Hello World");
}
}
8. 编辑好保存, 然后跳到菜单 -> run -> run as -> java application
9. 你可以看到console view中就冒出Hello World了
很easy把, 当然, 你会在开发中会遇到很多问题, 这是必然的, 那这些问题只能在实践
中积累才能得到解决, 所以不用急,多用用,多玩玩,遇到问题经常到版上来问
问.
还有如果你发现问题的话, 找问题解决方案的第一个地方,应该是eclipse的帮助系统里
的Java Development User Guide, 几乎绝大多数问题,上面都有答案. 所以
有空的话还是要多读一读.
不过,很多人都说用了eclipse之后,就抛弃了其他的java ide, 说明它必有爽的地方, 那
我来介绍一下用eclipse 开发java,有哪些爽的地方
[Java Development Tool (JDT) 特色]
其实特色有很多,我也只是凭我的开发经验, 介绍一下jdt的突出功能.
1. 自动修饰代码功能
这个功能很大程度上, 把平时一些开发代码中的琐碎的工作给自动化了
打开菜单
+ Source
- Comment: 这个比较有用,比如你写java代码,发觉你有一段代码要注
释掉,那就选中那一块代码,然后选这项,他就会自动把这段代码注释掉. 快捷
健是 "Ctrl+/"
- Uncomment: 反注释, 操作方法和Comment差不多, 快捷键是 "Ctrl+/"
- Format: 这个操作项是我一直推荐的, 非常方便, 比如你写了段格
式很烂的代码, 乱七八糟的, 那你就选择这项,你会发觉, 哇~~, 我的代码怎
么一下子变漂亮了, 不信你可以试试, 快捷键是"Ctrl+Shift+F", 所以我现在都养成习
惯了,写一会儿代码,就c+s+f一下, 呵呵,很方便的.
- Sort Member: 这个不是很常用,但是如果你觉得代码太长,老是找不到函
数,,也可以试试. 他会帮你把你写的函数,变量重新排序
- Organize Import: 这个功能也是一个不用不爽的功能, 比如你编一个项目,
发现有很多import都没有用到,或者说你引用了一个类,但是你没有import,
结果编译不通过, 那都没关系, 一用这个,所有的问题迎刃而解. 至少我用这个之后, 就
从来没有写过import这类语句了. 快捷键是"Ctrl+Shift+O(是字母O,不是数
字0)", 我经常把这个和c+s+f一起用, 呵呵,人也变懒了不少
- Override/Implement Method: 这个比如你写一个类, 实现了某一个接口,但是
你还没有实现那个接口的函数, 那就用这个,它会自动搜索父类和接口的方
法,你可以选择要覆盖还是实现哪些函数
- Generate Getter and Setter: 如果你加了一个类变量, 要为它写getter和se
tter,不用那么麻烦, 用这个把,都是自动的
- Generate Delegating Method: 如果某一个field要生成代理函数,用这个把,
选一下就ok
- Add Javadoc Comment: 点中某一个你想要加javadoc的函数或类或变量,然后
选这项,它会自动帮你加好javadoc的头,包括你用的那些param或return
- surround with try/catch block: 比如你有一段代码要处理某些exception,
可你又忘了用try/catch来写,别急,选中那段代码,然后选这项,你会发觉它会
自动针测你这段代码里要抛出哪些exception,并且自动生成好所有代码
- externalize string: 这个是在做国际化的时候用的,简单的说,就是把string
包在resource bundle里, 这也是i18n的一个解决方案,我想我以后会详细介
绍这方面的东西.
2. 重构功能:
重构这两年很热, 那让我们看看jdt里面的重构到底有多强. 呵呵, 这也是eclipse最吸
引我的一个地方.
打开菜单
+ Refactor
- Rename: 如果你写了一个类,你发觉这个类某个类变量的名字起的不太好听
, 你觉得不爽, 于是你就想改名字, 那怎么改呢, 就把那个变量名改了
? 呵呵,没那么简单,因为你这个变量如果已经在某些函数里引用到,那编译要出错了, 而
且你根本就不知道你哪里引用了, 写了那么多代码,脑子都晕了, 那不是死
菜了吗? 别紧张, 用这个rename可以帮你解决一切问题, 它不仅可以帮你把变量的名字
改了,而且它还会自动搜寻所有这个变量被引用到的地方,然后把那些地方也
一起改了, 爽不爽啊, 给你省了很大的劳动力不是.
- Move: 同样, 要移动一个实现了的静态函数或变量到别的类的话,
用这个移动, 保证不出错
- Modify Method Signature: 你设计函数不可能一下子就定型的,比如你一开始这
个函数有一个参数,后来发觉不对,要用两个, 那你就要用这个来改, 这
样它还会搜寻所有已经引用这个函数的地方, 并且把这些应用的地方也改掉,否则编译也
要出错的
- Extract Interface: 它可以帮你把一个类抽象成一个接口, 规范你的代码
- Extract Method: 如果你写了一段很长的函数, 但是这个函数有些代码有
重复利用性, 你就可以把给分割出来, 选中那段代码,然后选这项,系统会问
你抽出来的函数的定义, 然后它就会生成这段函数,把实现从原来函数那里抽出来,并在
原来函数那里写一个对这个新函数的引用,以保证程序不变性.
- Extract Local Variable: 如果你发觉你函数里有些值都是通过一样的表达
式得到的,你就可以通过这项把这段表达式变成一个变量,并且把这个变量替
换到引用到表达式的地方
- Extract Constant: 抽取常量, 比如一个string= "eclipse", 你觉得很多
地方要用到, 那就抽出来变成一个常量 ECLIPSE, 就这么简单
- convert local variable to field : 这个看名字就知道, 不多说了
- encapsulate field: 这个和生成getter,setter有点类似, 但是不同的在于,
如果你有一个public的常量 var,并且已经在别处引用到了, 那你用生成
getter,setter肯定有问题, 因为引用的地方没改过来, 用这个的话,不仅会生成getter,
setter,而且还会改掉所有引用的地方, 比如把var = ...;的地方改成
setvar(...), 把 ... = var地方改成 ... = getvar(); , 呵呵,够强把...
3. 敏感帮助:
这个jb之类的ide也有, 启动方式为"alt+/" , 你如果觉得这个不爽,可以选preference-
>workbench->keys->edit->content assist 修改键值
而且,这个敏感帮助还有一个强的地方在于:
你如果想写一个for语句, 呵呵, 就打 for, 然后alt+/, 选一个for的生成方式, 一个完
成的for语句就出来了, 呵呵,eclipse多用用, 人都会变懒的
这个功能其实是jdt的模板功能,你也可以加自己用的模板, 具体在 preference->
java -> editor ->templates 加
4. Quick Fix功能:
比如我们来编一个类A, 如下:
public class A {
public static void main(String args[]){
System.out.prin("Hello World");
}
}
编译是不通过的,print方法打错了, 打成prin了
所有你会发觉那一行的左边有个红差差,说明这行有错误,你把鼠标移到那个红差差上,它
会有一个提示出来,告诉你出了什么错了
这还不止,你还发觉在红差差左边有个电灯泡, 你点那个电灯泡,它会弹出框问你是chang
e to print 还是change to println, 选择change to print, 它就自动帮
你改好了,呵呵,连改错都这么方便,太爽了. 当然,如果没有电灯泡的话,你就只能手动改
了,毕竟这东西没这么智能,可以帮你自动解决所有的问题
ftp://ftp.sjtu.edu.cn/mirror/sites/download.eclipse.org/
这个目录是也是一个Eclipse网站的镜像,但是为什么没有公布在Eclipse.org网站上,这
我就不清楚了
你可以从上述网站上找到Eclipse的下载包
上了网站,你会发现有许多Eclipse版本,有1.x, 2.x, 3.x,那到底该用什么版本呢?
[Eclipse 版本 (以及WSAD版本)]
IBM有个深受大家欢迎的产品,叫做Webshpere Studio Application Developer (WSAD),
当时WSAD4.0发布时用的Eclipse是1.0版本的,后来IBM把Eclipse捐献出来后,就陆续开发
了2.x版本,而且也应用到了后来的WSAD产品,现在WSAD5.0用的是Eclipse 2.0, WSAD
5.1 用的是Eclipse 2.1.1.
现在Eclipse.org Release的最近Release的版本是Eclipse 2.1.3, 相信大家平时要用Ec
lipse做开发的话,用2.1.3比较合适.
同时,如果你如果想尝尝鲜的话,就试试Eclipse 3.0版本,现在3.0还没有Release,
Eclipse 3.0的开发过程是分成10个Milestone来分的,现在已经开发到第8个Milestone,
就是Eclipse 3.0M8. 大家可以试试. 预计3.0的正式版本要到今年6月发布, 相信到时候
发布不久后, WSAD6.0就会发布了. 呵呵,期待啊 @_@
另外对于Eclipse的开发,还有一种版本标记方式,是分别已 N, I, R 打头的, 比如
N20040101之类的, 大家会觉得纳闷,这到底代表什么意思呢. 其实, N 是 Nightly
Build , I 是 Integration Build, R 是 Release Build, 特别是对于大型软件, 有时
编译一个项目要花很多时间, 所以很多时候编译的工作就放在了夜里, 所以就有了
Nightly Build 这一说, 而Nightly版本在经过集成测试,就生成了 Integration 版本.
Integration版本再经过严格的测试,最后就发布Release版本. 所以 稳定性程度: R >
I > N.
相信大家了解了这个版本后,就可以当自己想要的版本了.
等当好了之后,我们就可以安装了
[Eclipse 安装] (以 R2.1.3 版本为例)
当下来的东东是一个压缩包, 然后你要做的就是把这个压缩包解压都某一个目录,为了方
便介绍,我们叫这个目录为.
让我们展开一下这个目录看看:
|
--- /plugins 存放插件的目录 (稍后介绍)
--- /features 存放功能部件的目录 (稍后介绍)
--- /links 其他plugins和features的连接地址的存放目录 (稍后介绍)
--- /readme
--- eclipse.exe 启动Eclipse程序
--- ...
[启动 Eclipse]
但是如果你机器还没有装jre的话,那eclipse还是不能启动的
如果没有的话,去java.sun.com当一个jre,安装好jre之后才能启动
如果你同时有几个jre, 那eclipse会自动搜索注册表,并找到版本高的jre使用.
提示: 如果想指定eclipse使用你想它使用的jre的话,可以设置eclipse.exe的启动参数:
eclipse.exe -vm
然后你就可以启动eclipse了, 慢慢等, 还是挺慢的, 你可以顺便喝口茶, 欣赏欣赏eclipse的splash画面, 呵呵
启动好后, eclipse的开发平台就展现你的眼前了.
在这个启动的时候, eclipse自动创建了一个workspace, 你可以在的目
录下看到一个workspace的目录,这个目录下还有一个.metadata的目录,这个目录存着你
这个启动的工作区的所有配置.
当然,如果你不想把workspace这个工作区目录放到别的目录下,也没有问题,设置一下eclipse的启动参数:
eclipse.exe -data
以后,你如果同时要开发好几个项目, 当时有不想放一个工作区里, 学会启动的不同的工作区是必要的
(前言)
大家根据上一讲,加之好好练习,相信您会越来越喜欢用eclipse来开发java程序的. 那今
天这篇, 应ForEclipse版友的要求, 就写一篇关于eclipse下使用cvs的文章
.而且昨天那篇水贴,大家都谈了谈使用感受,我也觉的受益非潜. 呵呵, 就来总结一下把
.
(正文)
[CVS 简介]
CVS 是 Concurrent Versions System的缩写,基于Unix体系中成熟的SCCS(Source
Code Control System)和RCS(Revision Control System)开发,是一个开放源
码的项目,目前已是版本控制系统的主流软件.一个很常见的使用CVS的场合,就是开放源
码项目.由于开放源码项目的开发者的分布性,对于版本管理的要求更加严格,
而目前大部分的开放源码项目几乎都是采用CVS来管理源代码,CVS的标准性和强大可见一
斑.
CVS采用客户机/服务器体系,代码以及各种版本存储在中心服务器内,每一个个体开发者
开发时都首先从服务器上获得一份自己的拷贝,在此基础上进行开发,以避免
直接影响服务器上的数据.开发者可以随时把自己的新代码提交给服务器,并通过更新获
得代码的最新状态,保持与其他开发者的一致.
CVS对于网络是透明的,开发者可以使用客户端软件(几乎所有的平台上都有相应的客户
端软件)在任何时候,任何地点通过网络来获取最新的代码.
对于Eclipse的开发者而言,Eclipse本身内置了CVS支持,不需要使用其他客户端软件,只
要建立一个CVS服务器,就可以使用这一强大的版本控制系统了.
[CVS 安装和配置]
这里只介绍windows下的cvs实现CVSNT,CVSNT的安装有一定困难,我简单介绍一下.
当然首先要说一下哪里可以下载到cvsnt, 就在http://www.cvsnt.org/ ,现在的最新版本
CVSNT 2.0.41 (Wednesday 21st April 2004)
CVSNT的windows版本在 nt, 2000 , xp, 2003 都可以安装的.
当下来后第一件事情就是setup, 安装好后,
从开始菜单的程序组中启动CVSNT配置程序service control panel.这时应该看到服务器
还没有运行(CVSNT作为系统服务运行),如果已经运行了,先把它停下来.选
择第二个选项卡Repositories,这里我们假设数据库都存储在E:/work/cvsrepo下,点击Ad
d, 然后点击省略号按钮来选择E:/work/cvsrepo作为数据库路径.它会提示
你这个数据库没有初始化,问你是否要初始化,选是. 然后, 我们选到service status 选
项卡, 启动server.
由于cvs的帐户默认是和windows domain用户联系在一起的, 所以可以通过在windows里
的控制面板添加用户,比如我们添加一个user, username= userid,
password= passwd. 我们会在后面使用到.
[Eclipse下 cvs 的使用]
在eclipse使用cvs前,首先要连上cvs服务器, 打开cvs repository透视图, 这个透视图
里有个cvs repository视图, 在这个视图中,右键点击选菜单New->
Repository location. 此时会谈出一个add cvs repository对话框. 然后填写此对话框
的各项信息:
host: localhost (如果你cvs server装在自己机器上)
repository path: e:/work/cvsrepo
user: userid
passwd: passwd
connection type: pserver
一切操作正常的话, eclipse就能连上cvs了. 接下来我们要开始介绍如何具体使用了.
1. share project & disconnect
首先一个project想加入cvs 控制的话, 就要share project, 用以把所有project下的信
息加入cvs下控制. 操作方式就是: 选中你要share的project,然后右键点击
弹出菜单, 选team-> share project
但是这里要注意的是, 不是所有的文件都应该加入cvs的,比如编辑器生成的临时文件,编
译生成的.class文件,或者某些编译过程生成的二进制文件等等.因此
,Eclipse并不自动把所有文件存储到数据库中,需要开发者手工指定把那些文件存储到数
据库中,也就是加入版本控制add to version control.对于单个文件的指定
,可以随时在Resource Perspective或Java Perspective中的文件上使用右键,选择Team,
Add to Version Control.如果需要存储整个项目或者同时指定多个文件,则
要使用同步(Synchronize)视图.
如果一个已经在cvs控制下的project,你想与cvs断开, 也很简单, 选中那个project,然
后右键点击弹出菜单,然后选team->disconnect
2. check out
如果想从cvs上, 下到本地,参加团队开发, 就先在cvs repository视图里浏览cvs里的内
容, 找到你要找的project, 然后右键点击, 选择check out as project,这
样eclipse就会自动从cvs上check out下来这个project, 可以开始团队开发了
3. 推荐使用的cvs步骤
理想的开发工作流是这样的:
Workbench #1 ----------------------------------------------------->
// //
/ / / /
update/ /commit update/ /commit
/ / / /
Branch ----------------------------------------------------->
/ /
/ /
update / / commit
//
Workbench #2 ----------------------------------------------------->
*: 从最新状态开始.开始工作前,要保证所有资源与最新的分枝状态一致.对于从头开始
的新项目,首先要连接服务器,设定存储那些资源文件.对于在服务器数据库中
已经有记录的项目,首先要通过更新来保证资源状态最新.如果本地的工作没有需要特别
保存的,可以直接把数据库中的最新版本Check Out As Project,或者Replace
With,Latest from Repository.
*: 进行本地工作,保存修改.
*: 同步.当做好提交工作的准备后,要和服务器数据库同步.
**: 首先应该更新(Update),检查所有的Incoming改变,输入到本地,看是否会影
响自己的工作,是否会造成冲突,破坏完整性等等.
**: 检查完更新后,可以确认自己的工作和最新的Branch内容是一致的,就可以提交
(Commit)自己的修改了,标上适当的注释.
以上推荐步骤一定要严格执行,否则后果自负!!
4. 其他使用提示
commit: 当完成对文件或者项目的修改,需要确认修改,把最新的状态存储到数据库中去,
就需要执行提交(commit)操作.类似的,我们可以在Resource Perspective
或Java Perspective中的文件上使用右键,选择Team,Commit;或者在Synchronize视图中
同时提交多个文件乃至整个项目.注意,每次提交时都会提示输入注释,这是
很重要的,作为每一个状态的说明和提示.
merge: 当我们需要把文件或者项目的不同版本进行比较或者替换时,可以在Resource
Perspective或Java Perspective中的文件上使用右键,选择Team,Compare
With或者Team,Replace With来完成.进行比较时将打开一个比较编辑器,很好地表示不同
版本之间的差异,和Local History类似.
explorer: 如果要了解CVS数据库的内容情况,可以使用CVS Repository Exploring
Perspective.我们可以点击Eclipse左上角的开启视图按钮,增加这一视图到左边
的视图浏览栏里.前面已经提到,HEAD代表CVS数据库里的主流内容.展开Versions,可以看
到以往的版本.另外,在右下角有数据库的历史记录标明每次修改的相关信息
.
[其他相关资源]
*: Eclipse Help中的Workbench User Guide中的 GettingStarted ->Team Tutorial 和
Task -> Working in team environment
*: http://www.cvshome.org/ CVS官方网站,可以从这里下载最新版本的CVS(Unix/Linux
平台版本)以及相关的文档和资料,
*: http://laser.zhengmai.com.cn/cvstutorials.html 一个中文的CVS简单教程.
*: http://www.cvsnt.org/ CVSNT,在Windows NT上的CVS服务器
*: http://www.cvsnt.org/mailman/listinfo/cvsnt 关于CVSNT的使用问题的邮件列表.
*: http://devguy.com/cvsnt 另一个CVSNT安装问题的帮助和常见问题回答.
*: http://www.cvsgui.org/ Windows平台下的图形化CVS客户端软件.
Eclipse零起步系列讲座 (五)
===========================================
(前言)
自从有了eclipse, plug-in这么名词就越来越红火起来了, 虽然eclipse自带了jdt,pde
等plug-in, 但这些显然不能满足我们的基本需求,也不能完全体现出eclipse的强大之处
. 那这篇就开始要介绍一些关于第三方plugin的一些知识.
(正文)
[plug-in 的安装]
或许有很多人说, plug-in的安装还不简单, 解压copy重启动不就ok了? 呵呵, 当然这是一
种办法. 但是远不止这一种哦.
方法1: 解压+copy+启动
记得第二讲讲过,eclipse启动后会自动的搜索plugins目录下所有的plugin,然后在featu
res的控制下启动或禁用它们. 所以最简单的一个方法就是把你下载下来的第三方plugin
,解压后copy到这features和plugins这两个目录里面, 就一切ok了.
例如: 我们以eclipse_example这个plug-in为例(每个eclipse版本都有一个相应的examp
le plug-in, 你只要去下载eclipse,就能找到这个plug-in的下载)
下载下来之后,解压到一个temp目录,
/
plugins/
org.eclipse.ui.examples.readmetool_2.1.0/
org.eclipse.swt.examples_2.1.0/
org.eclipse.help.examples.ex1_2.1.0/
org.eclipse.swt.examples.paint_2.1.0/
org.eclipse.sdk.examples_2.1.1/
org.eclipse.ui.examples.multipageeditor_2.1.0/
org.eclipse.compare.examples_2.1.0/
org.eclipse.jdt.ui.examples.projects_2.1.0/
org.eclipse.ui.examples.propertysheet_2.1.0/
org.eclipse.ui.examples.javaeditor_2.1.0/
org.eclipse.team.examples.filesystem_2.1.0/
org.eclipse.swt.examples.controls_2.1.0/
org.eclipse.swt.examples.layouts_2.1.0/
org.eclipse.swt.examples.launcher_2.1.0/
org.eclipse.swt.examples.ole.win32_2.1.0/
org.eclipse.sdk.examples.win32_2.1.1/
features/
org.eclipse.sdk.examples.win32_2.1.1/
org.eclipse.sdk.examples_2.1.1/
这个example里面有16个plugins和2个features, 然后我们这些plugins和features 拷到
eclipse里面相对应的目录里去就ok了
如果你启动eclipse是用老的工作区, 那启动后, eclipse会发现和老的工作区配置相比
又多了两个feature, 所有它会跳出框提示你是否启动这个feature, 选是,然后再选重启
工作区,以使feature生效, 那整个安装过程就ok了
方法2: links方式 (推荐方法)
这种方式比较好管理, 因为你装了1,2个plug-in还好, 如果装了好多好多, 那可就难办
了, 你会发觉/plugins和/features那两个目录下有多的数不清的plugins和features,
你想删出一个插件,你都不知道该删哪个好. 那有什么其他安装plugin的方法吗? 有.
还是以eclipse example为例, 但是我们要对解压后的目录做一下调整, 变成这样的结构
/
eclipse/ software update ->
update manager, 这样会切换到install/update perspective, 这个透视图是专门为了
安装和更新插件而设计的.
在eclipse有一个站点的概念, 就是说plug-in制作完后,可以封装后发布到一个站点上,
这样用户就可以通过eclipse平台连接到这个站点,进行自动更新.
例如, 我们以ajdt这个plugin为例 (http://www.eclipse.org/ajdt , 我们要在线安装
这个plug-in,
在features update视图中, 右键点击选new-> site bookmark,
在new site bookmark对话框中, name填 ajdt, URL 填
http://download.eclipse.org/technology/ajdt/update
然后确定, 你会发觉在features update视图中多了一个节点叫ajdt, 展开这个节点:
+ ajdt
+ AspectJ
- Eclipse AspectJ Development Tools 1.1.4 lomboz, 让我们对lomboz的选项做一些设置.
这preference->lomboz这个页面, 设置JDK Tool.jar, (前提是你必须装一下jdk,最好是
1.4)
然后选择preference->lomboz->server definitions, 这个页面就是用来配置各个服务
器的
在这里面预先定义了很多种服务器, 我们先来配置jboss
选择server type: jboss 3.2.x (因为最新版的jboss 4.0还没加进lomboz里, 就用3.2.
x的配置凑合用用, 因为3.2.x和
4.0的配置都是一样的)
然后修改下面的属性: Application Server Directory:
Classpath Variable:
Classpath Variable: JBOSS400
Server Configuration: 已经有三个配置minimal/defa
ult/all, 可以选一个你合适的,
不懂的选default好了
Port: 默认是8080, 你可以自己修改
, 就是服务器开后的访问端口
如果你觉得4.0的配置在jboss3.2.x实在不爽, 也可以新建一个server type节点
在ECLIPSE_HOME/plugins/com.objectlearn.jdt.j2ee/servers 文件夹下新建一个后缀
名为server的文件,然后根据已
有的server文件为模版,用文本编辑器编辑server文件。建立了一个新的server文件以
后,也可以在Lomboz的属性页中
进行相应的设置。
5. 修改bug
照例说是没有这一步的,可没办法, 配置jboss这里就是有一个bug,要不到后面jboss就跑
不起来了
还是选择server type : jboss 3.2.x这个节点, 然后切换到server classpath 页
然后add library按下, 选择/lib/dom4j.jar, 这样jboss启动的classpath
才算完整了
否则,启动的时候会报这个错
java.lang.NoClassDefFoundError: org/dom4j/Element
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.jboss.mx.modelmbean.RequiredModelMBeanInstantiator.instantiate(
RequiredModelMBeanInstantiator.java:36)
at org.jboss.mx.server.MBeanServerImpl.(MBeanServerImpl.java:163)
at
org.jboss.mx.server.MBeanServerBuilderImpl.newMBeanServer(MBeanServerBuilderI
mpl.java:56)
at
javax.management.MBeanServerBuilder.newMBeanServer(MBeanServerBuilder.java:62
)
at
javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java
:177)
at
javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java
:115)
at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:327)
at org.jboss.system.server.ServerImpl.start(ServerImpl.java:291)
at org.jboss.Main.boot(Main.java:144)
at org.jboss.Main$1.run(Main.java:389)
at java.lang.Thread.run(Unknown Source)
6.配置lomboz中的tomcat
选择 tomcat 5.0.x 这个server type,
然后修改下面的属性: Application Server Directory:
Classpath Variable:
Classpath Variable: TOMCAT_HOME
Port: 默认是8080, 你可以自己修改
, 就是服务器开后的访问端口
这里不用另外修改server classpath的, 所以ok.
[使用lomboz开发Web应用]
File-> New-> Project -> Java -> Lomboz J2EE Wizards -> Lomboz J2EE Project
在New Project里填入project的名字,然后next
在Create J2EE Modules的页面, add 一个新的web module, 比如叫Test
然后切换到 Targeted Server , 加入JBoss 3.2.x 和/或者 Tomcat 5.0.x (就是我们前
面配置好的那个服务器)
然后我们可以看到一个j2ee的web项目就建好了, 我们点击在Package Explorer这个view
中选择Test这个目录
右键点击,有一个菜单集叫做Lomboz J2EE,
我们可以利用这个菜单集来进行操作:
比如你加入了好几个服务器的话, 就可以用change default server来选择默认的服务器
选择好默认的服务器之后,我们就可以run server,
此时server就启动了, log信息会在console view中显示出来
等到server完全启动完毕之后, 我们可以deploy module,它就是执行一段ant,然后deplo
y到当前运行的服务器上
完成deploy之后,我们就可以看效果了
打开ie, http://localhost:8080/Test/index.jsp
你如果看到welcome, 那就说明一切都ok了
以后比如你在运行的时候,在编辑jsp, 编辑完之后,重新deploy,就可以马上看到更新的
结果
Eclipse这个新的东东,大家都很感兴趣,为了帮助初学者揭开Eclipse的神秘面纱,也为了
总结一下自己的使用开发经验,所以打算写下来共享给大家,当然我也是在不断的摸索中,
文中如有不对之处,还望大家指正.
(正文)
Eclipse项目是IBM在2001年捐献的一个开发平台,当时此项目评估价值为40million
USD. 此东东如此值钱,可见自是有过人之处. 接下来直接转入正题, 哪里可以下到Eclip
se呢.
[Eclipse 下载]
下载Eclipse的官方网站:
http://www.eclipse.org/downloads/
这个网站上有很多mirror,你可以根据网路,选择自己最方便的下载mirror
如果你在交大的校园的话,呵呵,那就去这里
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
启动,它也一定会启动, 就相当于没有开关, 电源一直连通一样.
当然,功能部件还有很多其他方面的用处,以后会有详细介绍.
Eclipse零起步系列讲座 (三)
===========================================
(前言)
根据上一讲,你或许大概已经了解了Eclipse的组成,以及大致的运行机理. 这篇文章, 将
开始带您使用eclipse.
(正文)
[Eclipse的工作台使用指南]
这部分要写的话,其实要写很多,而且最好方式则是图文并茂,最好再有演示. 我这里只是
给一些总体的介绍,并给予一些使用上的指导. 个人感觉,如果你从来
没碰过eclipse, 启动之后,最好先看一下help, 这样会比较好.
具体的操作步骤是这样的, 启动eclipse后, 选 菜单里的help-> help contents, 此时
会弹出一个新的窗口,就是eclipse的帮助窗口, 这个窗口的左边是一个导航
条,选择Workbench User Guide, 里面分为Getting Started, Concepts, Tasks 和Refer
ence. 可以先看一下 Getting Started里面的Basic Tutorial. 这份
tutorial可以在最短的时间内,让你熟悉eclipse的工作台.
其实,eclipse平台ui方面有这几个组件: 菜单, 工具栏, 视图, 透视图, 编辑器
菜单和工具栏不用说了, 地球人都知道的, 视图就是view, 比如 Navigator, Outline,
Tasks 等等都是视图, 每一个视图都有自己相应的功能,你可以参看
workbench user guide来了解这些视图. 编辑器,就是editor, 比如有开发java的编辑器
, 编写文本的编辑器,等等, 最后还有一个叫透视图, 英文是perspective,
这个东东其实是不同的view,menu,toolbar,editor的排列组合. 比如你开发java, 你经
常会用到package explorer, tasks, outline等view和编写java的editor,
以及适合开发java的菜单(Source和Refactor), 那它就会布局一个适合开发java的透视
图, 以此类推.
下面我介绍一下常用菜单项:
+ File
- New: 新建文件,项目,或者其他都是从这里进入
- Import: 这个也是很有用的,比如别人开发的eclipse项目,你copy到
你机器上,可以通过import把这个项目导入工作区
- Export: 这个是导出功能, 比如你开发了一个项目,最后想导出一个
运行库,jar包之类的都可以用这个,这样你就不用自己手动的去把那些class
文件打包了
+ Window
- New Window: 你如果觉得在一个window下开发东西太挤的话,可以再开一
个,等于冒出两个workbench,其实操作的resource都是一样的.
- Open Perspective: eclipse有很多透视图如resource, java, java
browsing, cvs, debug等等,你可以根据当前开发的需要,选择你要的透视图进行开发
- Open View: 透视图毕竟有限,不可能把所有的view都帮你开好, 所以你
如果发觉你要用某一个view,但是它没有开,就用这个选项
- Customize Perspective: 毕竟每个人都有自己的习惯, 你觉得这个透视图用
的不爽, 可以自己定制的
- Reset Perspective: 给你定制的一塌糊涂, 唉, 没办法, 还原成老样子把,
就用这个
- Preference: 这个是非常重要的选项, 偶是没事就进去改的, 它保存了
很多配置方面的东西, 比如字体, 快捷键设置, 很多很多方面都要用到这个
的, 这个东西的详细介绍, 会稍后介绍.
+ Help
- Welcome: eclipse很多插件都做了welcome page,这个page对很多初学
者来说,很有用的,否则很多情况下,新的东西是无从下手的.
- Help Content: 前面讲过了,用来启动帮助系统
- Update: 这个以后会具体介绍
- About Platform: 你可以从这里了解你装了哪些features和plugins
[利用 eclipse 开发简单的 java 程序]
好了,我们一起step by step来学一下把, 很easy的
1. 菜单 new -> project, 然后在new project 对话框里选 java ->java project, 按n
ext 按钮
2. 输入 project 的名字, 按 next 按钮, 当然如果你不想把项目的根目录建在默认的
地方,也可以取消掉use default ,然后自己设定目录
3. 之后就 finish 把, 都用默认配置
4. 如果你没有在java透视图下面,它会提示你是否跳到java透视图,选择是
5. ok 一个项目就建好了
6. 之后,你就可以 new class 开始写java程序了
7. 比如你的new一个class,如下
public class A{
public static void main(String args[]){
System.out.println("Hello World");
}
}
8. 编辑好保存, 然后跳到菜单 -> run -> run as -> java application
9. 你可以看到console view中就冒出Hello World了
很easy把, 当然, 你会在开发中会遇到很多问题, 这是必然的, 那这些问题只能在实践
中积累才能得到解决, 所以不用急,多用用,多玩玩,遇到问题经常到版上来问
问.
还有如果你发现问题的话, 找问题解决方案的第一个地方,应该是eclipse的帮助系统里
的Java Development User Guide, 几乎绝大多数问题,上面都有答案. 所以
有空的话还是要多读一读.
不过,很多人都说用了eclipse之后,就抛弃了其他的java ide, 说明它必有爽的地方, 那
我来介绍一下用eclipse 开发java,有哪些爽的地方
[Java Development Tool (JDT) 特色]
其实特色有很多,我也只是凭我的开发经验, 介绍一下jdt的突出功能.
1. 自动修饰代码功能
这个功能很大程度上, 把平时一些开发代码中的琐碎的工作给自动化了
打开菜单
+ Source
- Comment: 这个比较有用,比如你写java代码,发觉你有一段代码要注
释掉,那就选中那一块代码,然后选这项,他就会自动把这段代码注释掉. 快捷
健是 "Ctrl+/"
- Uncomment: 反注释, 操作方法和Comment差不多, 快捷键是 "Ctrl+/"
- Format: 这个操作项是我一直推荐的, 非常方便, 比如你写了段格
式很烂的代码, 乱七八糟的, 那你就选择这项,你会发觉, 哇~~, 我的代码怎
么一下子变漂亮了, 不信你可以试试, 快捷键是"Ctrl+Shift+F", 所以我现在都养成习
惯了,写一会儿代码,就c+s+f一下, 呵呵,很方便的.
- Sort Member: 这个不是很常用,但是如果你觉得代码太长,老是找不到函
数,,也可以试试. 他会帮你把你写的函数,变量重新排序
- Organize Import: 这个功能也是一个不用不爽的功能, 比如你编一个项目,
发现有很多import都没有用到,或者说你引用了一个类,但是你没有import,
结果编译不通过, 那都没关系, 一用这个,所有的问题迎刃而解. 至少我用这个之后, 就
从来没有写过import这类语句了. 快捷键是"Ctrl+Shift+O(是字母O,不是数
字0)", 我经常把这个和c+s+f一起用, 呵呵,人也变懒了不少
- Override/Implement Method: 这个比如你写一个类, 实现了某一个接口,但是
你还没有实现那个接口的函数, 那就用这个,它会自动搜索父类和接口的方
法,你可以选择要覆盖还是实现哪些函数
- Generate Getter and Setter: 如果你加了一个类变量, 要为它写getter和se
tter,不用那么麻烦, 用这个把,都是自动的
- Generate Delegating Method: 如果某一个field要生成代理函数,用这个把,
选一下就ok
- Add Javadoc Comment: 点中某一个你想要加javadoc的函数或类或变量,然后
选这项,它会自动帮你加好javadoc的头,包括你用的那些param或return
- surround with try/catch block: 比如你有一段代码要处理某些exception,
可你又忘了用try/catch来写,别急,选中那段代码,然后选这项,你会发觉它会
自动针测你这段代码里要抛出哪些exception,并且自动生成好所有代码
- externalize string: 这个是在做国际化的时候用的,简单的说,就是把string
包在resource bundle里, 这也是i18n的一个解决方案,我想我以后会详细介
绍这方面的东西.
2. 重构功能:
重构这两年很热, 那让我们看看jdt里面的重构到底有多强. 呵呵, 这也是eclipse最吸
引我的一个地方.
打开菜单
+ Refactor
- Rename: 如果你写了一个类,你发觉这个类某个类变量的名字起的不太好听
, 你觉得不爽, 于是你就想改名字, 那怎么改呢, 就把那个变量名改了
? 呵呵,没那么简单,因为你这个变量如果已经在某些函数里引用到,那编译要出错了, 而
且你根本就不知道你哪里引用了, 写了那么多代码,脑子都晕了, 那不是死
菜了吗? 别紧张, 用这个rename可以帮你解决一切问题, 它不仅可以帮你把变量的名字
改了,而且它还会自动搜寻所有这个变量被引用到的地方,然后把那些地方也
一起改了, 爽不爽啊, 给你省了很大的劳动力不是.
- Move: 同样, 要移动一个实现了的静态函数或变量到别的类的话,
用这个移动, 保证不出错
- Modify Method Signature: 你设计函数不可能一下子就定型的,比如你一开始这
个函数有一个参数,后来发觉不对,要用两个, 那你就要用这个来改, 这
样它还会搜寻所有已经引用这个函数的地方, 并且把这些应用的地方也改掉,否则编译也
要出错的
- Extract Interface: 它可以帮你把一个类抽象成一个接口, 规范你的代码
- Extract Method: 如果你写了一段很长的函数, 但是这个函数有些代码有
重复利用性, 你就可以把给分割出来, 选中那段代码,然后选这项,系统会问
你抽出来的函数的定义, 然后它就会生成这段函数,把实现从原来函数那里抽出来,并在
原来函数那里写一个对这个新函数的引用,以保证程序不变性.
- Extract Local Variable: 如果你发觉你函数里有些值都是通过一样的表达
式得到的,你就可以通过这项把这段表达式变成一个变量,并且把这个变量替
换到引用到表达式的地方
- Extract Constant: 抽取常量, 比如一个string= "eclipse", 你觉得很多
地方要用到, 那就抽出来变成一个常量 ECLIPSE, 就这么简单
- convert local variable to field : 这个看名字就知道, 不多说了
- encapsulate field: 这个和生成getter,setter有点类似, 但是不同的在于,
如果你有一个public的常量 var,并且已经在别处引用到了, 那你用生成
getter,setter肯定有问题, 因为引用的地方没改过来, 用这个的话,不仅会生成getter,
setter,而且还会改掉所有引用的地方, 比如把var = ...;的地方改成
setvar(...), 把 ... = var地方改成 ... = getvar(); , 呵呵,够强把...
3. 敏感帮助:
这个jb之类的ide也有, 启动方式为"alt+/" , 你如果觉得这个不爽,可以选preference-
>workbench->keys->edit->content assist 修改键值
而且,这个敏感帮助还有一个强的地方在于:
你如果想写一个for语句, 呵呵, 就打 for, 然后alt+/, 选一个for的生成方式, 一个完
成的for语句就出来了, 呵呵,eclipse多用用, 人都会变懒的
这个功能其实是jdt的模板功能,你也可以加自己用的模板, 具体在 preference->
java -> editor ->templates 加
4. Quick Fix功能:
比如我们来编一个类A, 如下:
public class A {
public static void main(String args[]){
System.out.prin("Hello World");
}
}
编译是不通过的,print方法打错了, 打成prin了
所有你会发觉那一行的左边有个红差差,说明这行有错误,你把鼠标移到那个红差差上,它
会有一个提示出来,告诉你出了什么错了
这还不止,你还发觉在红差差左边有个电灯泡, 你点那个电灯泡,它会弹出框问你是chang
e to print 还是change to println, 选择change to print, 它就自动帮
你改好了,呵呵,连改错都这么方便,太爽了. 当然,如果没有电灯泡的话,你就只能手动改
了,毕竟这东西没这么智能,可以帮你自动解决所有的问题
ftp://ftp.sjtu.edu.cn/mirror/sites/download.eclipse.org/
这个目录是也是一个Eclipse网站的镜像,但是为什么没有公布在Eclipse.org网站上,这
我就不清楚了
你可以从上述网站上找到Eclipse的下载包
上了网站,你会发现有许多Eclipse版本,有1.x, 2.x, 3.x,那到底该用什么版本呢?
[Eclipse 版本 (以及WSAD版本)]
IBM有个深受大家欢迎的产品,叫做Webshpere Studio Application Developer (WSAD),
当时WSAD4.0发布时用的Eclipse是1.0版本的,后来IBM把Eclipse捐献出来后,就陆续开发
了2.x版本,而且也应用到了后来的WSAD产品,现在WSAD5.0用的是Eclipse 2.0, WSAD
5.1 用的是Eclipse 2.1.1.
现在Eclipse.org Release的最近Release的版本是Eclipse 2.1.3, 相信大家平时要用Ec
lipse做开发的话,用2.1.3比较合适.
同时,如果你如果想尝尝鲜的话,就试试Eclipse 3.0版本,现在3.0还没有Release,
Eclipse 3.0的开发过程是分成10个Milestone来分的,现在已经开发到第8个Milestone,
就是Eclipse 3.0M8. 大家可以试试. 预计3.0的正式版本要到今年6月发布, 相信到时候
发布不久后, WSAD6.0就会发布了. 呵呵,期待啊 @_@
另外对于Eclipse的开发,还有一种版本标记方式,是分别已 N, I, R 打头的, 比如
N20040101之类的, 大家会觉得纳闷,这到底代表什么意思呢. 其实, N 是 Nightly
Build , I 是 Integration Build, R 是 Release Build, 特别是对于大型软件, 有时
编译一个项目要花很多时间, 所以很多时候编译的工作就放在了夜里, 所以就有了
Nightly Build 这一说, 而Nightly版本在经过集成测试,就生成了 Integration 版本.
Integration版本再经过严格的测试,最后就发布Release版本. 所以 稳定性程度: R >
I > N.
相信大家了解了这个版本后,就可以当自己想要的版本了.
等当好了之后,我们就可以安装了
[Eclipse 安装] (以 R2.1.3 版本为例)
当下来的东东是一个压缩包, 然后你要做的就是把这个压缩包解压都某一个目录,为了方
便介绍,我们叫这个目录为.
让我们展开一下这个目录看看:
|
--- /plugins 存放插件的目录 (稍后介绍)
--- /features 存放功能部件的目录 (稍后介绍)
--- /links 其他plugins和features的连接地址的存放目录 (稍后介绍)
--- /readme
--- eclipse.exe 启动Eclipse程序
--- ...
[启动 Eclipse]
但是如果你机器还没有装jre的话,那eclipse还是不能启动的
如果没有的话,去java.sun.com当一个jre,安装好jre之后才能启动
如果你同时有几个jre, 那eclipse会自动搜索注册表,并找到版本高的jre使用.
提示: 如果想指定eclipse使用你想它使用的jre的话,可以设置eclipse.exe的启动参数:
eclipse.exe -vm
然后你就可以启动eclipse了, 慢慢等, 还是挺慢的, 你可以顺便喝口茶, 欣赏欣赏eclipse的splash画面, 呵呵
启动好后, eclipse的开发平台就展现你的眼前了.
在这个启动的时候, eclipse自动创建了一个workspace, 你可以在的目
录下看到一个workspace的目录,这个目录下还有一个.metadata的目录,这个目录存着你
这个启动的工作区的所有配置.
当然,如果你不想把workspace这个工作区目录放到别的目录下,也没有问题,设置一下eclipse的启动参数:
eclipse.exe -data
以后,你如果同时要开发好几个项目, 当时有不想放一个工作区里, 学会启动的不同的工作区是必要的
(前言)
大家根据上一讲,加之好好练习,相信您会越来越喜欢用eclipse来开发java程序的. 那今
天这篇, 应ForEclipse版友的要求, 就写一篇关于eclipse下使用cvs的文章
.而且昨天那篇水贴,大家都谈了谈使用感受,我也觉的受益非潜. 呵呵, 就来总结一下把
.
(正文)
[CVS 简介]
CVS 是 Concurrent Versions System的缩写,基于Unix体系中成熟的SCCS(Source
Code Control System)和RCS(Revision Control System)开发,是一个开放源
码的项目,目前已是版本控制系统的主流软件.一个很常见的使用CVS的场合,就是开放源
码项目.由于开放源码项目的开发者的分布性,对于版本管理的要求更加严格,
而目前大部分的开放源码项目几乎都是采用CVS来管理源代码,CVS的标准性和强大可见一
斑.
CVS采用客户机/服务器体系,代码以及各种版本存储在中心服务器内,每一个个体开发者
开发时都首先从服务器上获得一份自己的拷贝,在此基础上进行开发,以避免
直接影响服务器上的数据.开发者可以随时把自己的新代码提交给服务器,并通过更新获
得代码的最新状态,保持与其他开发者的一致.
CVS对于网络是透明的,开发者可以使用客户端软件(几乎所有的平台上都有相应的客户
端软件)在任何时候,任何地点通过网络来获取最新的代码.
对于Eclipse的开发者而言,Eclipse本身内置了CVS支持,不需要使用其他客户端软件,只
要建立一个CVS服务器,就可以使用这一强大的版本控制系统了.
[CVS 安装和配置]
这里只介绍windows下的cvs实现CVSNT,CVSNT的安装有一定困难,我简单介绍一下.
当然首先要说一下哪里可以下载到cvsnt, 就在http://www.cvsnt.org/ ,现在的最新版本
CVSNT 2.0.41 (Wednesday 21st April 2004)
CVSNT的windows版本在 nt, 2000 , xp, 2003 都可以安装的.
当下来后第一件事情就是setup, 安装好后,
从开始菜单的程序组中启动CVSNT配置程序service control panel.这时应该看到服务器
还没有运行(CVSNT作为系统服务运行),如果已经运行了,先把它停下来.选
择第二个选项卡Repositories,这里我们假设数据库都存储在E:/work/cvsrepo下,点击Ad
d, 然后点击省略号按钮来选择E:/work/cvsrepo作为数据库路径.它会提示
你这个数据库没有初始化,问你是否要初始化,选是. 然后, 我们选到service status 选
项卡, 启动server.
由于cvs的帐户默认是和windows domain用户联系在一起的, 所以可以通过在windows里
的控制面板添加用户,比如我们添加一个user, username= userid,
password= passwd. 我们会在后面使用到.
[Eclipse下 cvs 的使用]
在eclipse使用cvs前,首先要连上cvs服务器, 打开cvs repository透视图, 这个透视图
里有个cvs repository视图, 在这个视图中,右键点击选菜单New->
Repository location. 此时会谈出一个add cvs repository对话框. 然后填写此对话框
的各项信息:
host: localhost (如果你cvs server装在自己机器上)
repository path: e:/work/cvsrepo
user: userid
passwd: passwd
connection type: pserver
一切操作正常的话, eclipse就能连上cvs了. 接下来我们要开始介绍如何具体使用了.
1. share project & disconnect
首先一个project想加入cvs 控制的话, 就要share project, 用以把所有project下的信
息加入cvs下控制. 操作方式就是: 选中你要share的project,然后右键点击
弹出菜单, 选team-> share project
但是这里要注意的是, 不是所有的文件都应该加入cvs的,比如编辑器生成的临时文件,编
译生成的.class文件,或者某些编译过程生成的二进制文件等等.因此
,Eclipse并不自动把所有文件存储到数据库中,需要开发者手工指定把那些文件存储到数
据库中,也就是加入版本控制add to version control.对于单个文件的指定
,可以随时在Resource Perspective或Java Perspective中的文件上使用右键,选择Team,
Add to Version Control.如果需要存储整个项目或者同时指定多个文件,则
要使用同步(Synchronize)视图.
如果一个已经在cvs控制下的project,你想与cvs断开, 也很简单, 选中那个project,然
后右键点击弹出菜单,然后选team->disconnect
2. check out
如果想从cvs上, 下到本地,参加团队开发, 就先在cvs repository视图里浏览cvs里的内
容, 找到你要找的project, 然后右键点击, 选择check out as project,这
样eclipse就会自动从cvs上check out下来这个project, 可以开始团队开发了
3. 推荐使用的cvs步骤
理想的开发工作流是这样的:
Workbench #1 ----------------------------------------------------->
// //
/ / / /
update/ /commit update/ /commit
/ / / /
Branch ----------------------------------------------------->
/ /
/ /
update / / commit
//
Workbench #2 ----------------------------------------------------->
*: 从最新状态开始.开始工作前,要保证所有资源与最新的分枝状态一致.对于从头开始
的新项目,首先要连接服务器,设定存储那些资源文件.对于在服务器数据库中
已经有记录的项目,首先要通过更新来保证资源状态最新.如果本地的工作没有需要特别
保存的,可以直接把数据库中的最新版本Check Out As Project,或者Replace
With,Latest from Repository.
*: 进行本地工作,保存修改.
*: 同步.当做好提交工作的准备后,要和服务器数据库同步.
**: 首先应该更新(Update),检查所有的Incoming改变,输入到本地,看是否会影
响自己的工作,是否会造成冲突,破坏完整性等等.
**: 检查完更新后,可以确认自己的工作和最新的Branch内容是一致的,就可以提交
(Commit)自己的修改了,标上适当的注释.
以上推荐步骤一定要严格执行,否则后果自负!!
4. 其他使用提示
commit: 当完成对文件或者项目的修改,需要确认修改,把最新的状态存储到数据库中去,
就需要执行提交(commit)操作.类似的,我们可以在Resource Perspective
或Java Perspective中的文件上使用右键,选择Team,Commit;或者在Synchronize视图中
同时提交多个文件乃至整个项目.注意,每次提交时都会提示输入注释,这是
很重要的,作为每一个状态的说明和提示.
merge: 当我们需要把文件或者项目的不同版本进行比较或者替换时,可以在Resource
Perspective或Java Perspective中的文件上使用右键,选择Team,Compare
With或者Team,Replace With来完成.进行比较时将打开一个比较编辑器,很好地表示不同
版本之间的差异,和Local History类似.
explorer: 如果要了解CVS数据库的内容情况,可以使用CVS Repository Exploring
Perspective.我们可以点击Eclipse左上角的开启视图按钮,增加这一视图到左边
的视图浏览栏里.前面已经提到,HEAD代表CVS数据库里的主流内容.展开Versions,可以看
到以往的版本.另外,在右下角有数据库的历史记录标明每次修改的相关信息
.
[其他相关资源]
*: Eclipse Help中的Workbench User Guide中的 GettingStarted ->Team Tutorial 和
Task -> Working in team environment
*: http://www.cvshome.org/ CVS官方网站,可以从这里下载最新版本的CVS(Unix/Linux
平台版本)以及相关的文档和资料,
*: http://laser.zhengmai.com.cn/cvstutorials.html 一个中文的CVS简单教程.
*: http://www.cvsnt.org/ CVSNT,在Windows NT上的CVS服务器
*: http://www.cvsnt.org/mailman/listinfo/cvsnt 关于CVSNT的使用问题的邮件列表.
*: http://devguy.com/cvsnt 另一个CVSNT安装问题的帮助和常见问题回答.
*: http://www.cvsgui.org/ Windows平台下的图形化CVS客户端软件.
Eclipse零起步系列讲座 (五)
===========================================
(前言)
自从有了eclipse, plug-in这么名词就越来越红火起来了, 虽然eclipse自带了jdt,pde
等plug-in, 但这些显然不能满足我们的基本需求,也不能完全体现出eclipse的强大之处
. 那这篇就开始要介绍一些关于第三方plugin的一些知识.
(正文)
[plug-in 的安装]
或许有很多人说, plug-in的安装还不简单, 解压copy重启动不就ok了? 呵呵, 当然这是一
种办法. 但是远不止这一种哦.
方法1: 解压+copy+启动
记得第二讲讲过,eclipse启动后会自动的搜索plugins目录下所有的plugin,然后在featu
res的控制下启动或禁用它们. 所以最简单的一个方法就是把你下载下来的第三方plugin
,解压后copy到这features和plugins这两个目录里面, 就一切ok了.
例如: 我们以eclipse_example这个plug-in为例(每个eclipse版本都有一个相应的examp
le plug-in, 你只要去下载eclipse,就能找到这个plug-in的下载)
下载下来之后,解压到一个temp目录,
/
plugins/
org.eclipse.ui.examples.readmetool_2.1.0/
org.eclipse.swt.examples_2.1.0/
org.eclipse.help.examples.ex1_2.1.0/
org.eclipse.swt.examples.paint_2.1.0/
org.eclipse.sdk.examples_2.1.1/
org.eclipse.ui.examples.multipageeditor_2.1.0/
org.eclipse.compare.examples_2.1.0/
org.eclipse.jdt.ui.examples.projects_2.1.0/
org.eclipse.ui.examples.propertysheet_2.1.0/
org.eclipse.ui.examples.javaeditor_2.1.0/
org.eclipse.team.examples.filesystem_2.1.0/
org.eclipse.swt.examples.controls_2.1.0/
org.eclipse.swt.examples.layouts_2.1.0/
org.eclipse.swt.examples.launcher_2.1.0/
org.eclipse.swt.examples.ole.win32_2.1.0/
org.eclipse.sdk.examples.win32_2.1.1/
features/
org.eclipse.sdk.examples.win32_2.1.1/
org.eclipse.sdk.examples_2.1.1/
这个example里面有16个plugins和2个features, 然后我们这些plugins和features 拷到
eclipse里面相对应的目录里去就ok了
如果你启动eclipse是用老的工作区, 那启动后, eclipse会发现和老的工作区配置相比
又多了两个feature, 所有它会跳出框提示你是否启动这个feature, 选是,然后再选重启
工作区,以使feature生效, 那整个安装过程就ok了
方法2: links方式 (推荐方法)
这种方式比较好管理, 因为你装了1,2个plug-in还好, 如果装了好多好多, 那可就难办
了, 你会发觉/plugins和/features那两个目录下有多的数不清的plugins和features,
你想删出一个插件,你都不知道该删哪个好. 那有什么其他安装plugin的方法吗? 有.
还是以eclipse example为例, 但是我们要对解压后的目录做一下调整, 变成这样的结构
/
eclipse/ software update ->
update manager, 这样会切换到install/update perspective, 这个透视图是专门为了
安装和更新插件而设计的.
在eclipse有一个站点的概念, 就是说plug-in制作完后,可以封装后发布到一个站点上,
这样用户就可以通过eclipse平台连接到这个站点,进行自动更新.
例如, 我们以ajdt这个plugin为例 (http://www.eclipse.org/ajdt , 我们要在线安装
这个plug-in,
在features update视图中, 右键点击选new-> site bookmark,
在new site bookmark对话框中, name填 ajdt, URL 填
http://download.eclipse.org/technology/ajdt/update
然后确定, 你会发觉在features update视图中多了一个节点叫ajdt, 展开这个节点:
+ ajdt
+ AspectJ
- Eclipse AspectJ Development Tools 1.1.4 lomboz, 让我们对lomboz的选项做一些设置.
这preference->lomboz这个页面, 设置JDK Tool.jar, (前提是你必须装一下jdk,最好是
1.4)
然后选择preference->lomboz->server definitions, 这个页面就是用来配置各个服务
器的
在这里面预先定义了很多种服务器, 我们先来配置jboss
选择server type: jboss 3.2.x (因为最新版的jboss 4.0还没加进lomboz里, 就用3.2.
x的配置凑合用用, 因为3.2.x和
4.0的配置都是一样的)
然后修改下面的属性: Application Server Directory:
Classpath Variable:
Classpath Variable: JBOSS400
Server Configuration: 已经有三个配置minimal/defa
ult/all, 可以选一个你合适的,
不懂的选default好了
Port: 默认是8080, 你可以自己修改
, 就是服务器开后的访问端口
如果你觉得4.0的配置在jboss3.2.x实在不爽, 也可以新建一个server type节点
在ECLIPSE_HOME/plugins/com.objectlearn.jdt.j2ee/servers 文件夹下新建一个后缀
名为server的文件,然后根据已
有的server文件为模版,用文本编辑器编辑server文件。建立了一个新的server文件以
后,也可以在Lomboz的属性页中
进行相应的设置。
5. 修改bug
照例说是没有这一步的,可没办法, 配置jboss这里就是有一个bug,要不到后面jboss就跑
不起来了
还是选择server type : jboss 3.2.x这个节点, 然后切换到server classpath 页
然后add library按下, 选择/lib/dom4j.jar, 这样jboss启动的classpath
才算完整了
否则,启动的时候会报这个错
java.lang.NoClassDefFoundError: org/dom4j/Element
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.jboss.mx.modelmbean.RequiredModelMBeanInstantiator.instantiate(
RequiredModelMBeanInstantiator.java:36)
at org.jboss.mx.server.MBeanServerImpl.(MBeanServerImpl.java:163)
at
org.jboss.mx.server.MBeanServerBuilderImpl.newMBeanServer(MBeanServerBuilderI
mpl.java:56)
at
javax.management.MBeanServerBuilder.newMBeanServer(MBeanServerBuilder.java:62
)
at
javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java
:177)
at
javax.management.MBeanServerFactory.createMBeanServer(MBeanServerFactory.java
:115)
at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:327)
at org.jboss.system.server.ServerImpl.start(ServerImpl.java:291)
at org.jboss.Main.boot(Main.java:144)
at org.jboss.Main$1.run(Main.java:389)
at java.lang.Thread.run(Unknown Source)
6.配置lomboz中的tomcat
选择 tomcat 5.0.x 这个server type,
然后修改下面的属性: Application Server Directory:
Classpath Variable:
Classpath Variable: TOMCAT_HOME
Port: 默认是8080, 你可以自己修改
, 就是服务器开后的访问端口
这里不用另外修改server classpath的, 所以ok.
[使用lomboz开发Web应用]
File-> New-> Project -> Java -> Lomboz J2EE Wizards -> Lomboz J2EE Project
在New Project里填入project的名字,然后next
在Create J2EE Modules的页面, add 一个新的web module, 比如叫Test
然后切换到 Targeted Server , 加入JBoss 3.2.x 和/或者 Tomcat 5.0.x (就是我们前
面配置好的那个服务器)
然后我们可以看到一个j2ee的web项目就建好了, 我们点击在Package Explorer这个view
中选择Test这个目录
右键点击,有一个菜单集叫做Lomboz J2EE,
我们可以利用这个菜单集来进行操作:
比如你加入了好几个服务器的话, 就可以用change default server来选择默认的服务器
选择好默认的服务器之后,我们就可以run server,
此时server就启动了, log信息会在console view中显示出来
等到server完全启动完毕之后, 我们可以deploy module,它就是执行一段ant,然后deplo
y到当前运行的服务器上
完成deploy之后,我们就可以看效果了
打开ie, http://localhost:8080/Test/index.jsp
你如果看到welcome, 那就说明一切都ok了
以后比如你在运行的时候,在编辑jsp, 编辑完之后,重新deploy,就可以马上看到更新的
结果