每个IDE都允许您管理文件和构建项目Eclipse不仅仅局限于此因为它可以在比大多数IDE所拥有的典型文件中心视图更密切的层次上处理您所编写的代码作为开发人员您可以只编写少量代码而让Eclipse来完成查找改变切换移动等待这些繁杂的工作从而获得好处
有了Eclipse这个工具您就可以把精力集中在手边真正的任务上编写能完成预定功能的代码
从UI开始
首先请注意本文所涉及的是新的Eclipse它在某些方面与较早的版以及WSAD和RAD不同
Eclipse看上去与其他大多数的IDE很类似因为基本的用户界面(UI)已被各地的开发人员所熟悉——除了那些仍在使用Emacs或vi的人但他们还是可以在Eclipse中找到吸引人的东西Eclipse对这两个键绑定都是支持的
基本的Eclipse用户界面如图 所示在屏幕的左边可以看到开发资源列表源代码jars以及组成您的最新开发项目的其他成分实际上列表被划分成您当前正在开发的不同项目它们可以是相互依赖的也可以是完全独立的
Eclipse将项目数据保存在两个文件中分别是project文件和classpath文件project文件保存关于项目中包含哪些文件如何使用它们如何构建项目等方面的信息以及更多的详细信息任何Java项目中都有classpath文件该文件告诉Eclipse在构建过程中使用什么作为CLASSPATH变量
所有当前的项目都存在于当前的Workspace中Eclipse中的Workspace是一个包含了许多文件的目录可能还包含了项目所需的资源Eclipse从一个默认Workspace开始不过您可以很方便地将它设置为打开多个Workspace要打开一个不同的Workspace只需要在启动可执行文件时使用data标志即可例如
eclipseexe data E:/shared/workspaces/artemis
中间部分是一个源代码查看器它可以显示当前打开的文件的源代码注意它是多重标签的(tabbed)所以您可以一次打开多个文件右边是当前打开文件的概要Eclipse列出了类方法和文件的其他部分双击一个条目会跳转到相应的位置最后在底部是另一个多重标签的区域用于传输关于Eclipse所做的所发现的或者具有问题的事情的信息注意所有这些下面的标签都是视图您可以任意拖动还可以将它们堆叠起来组成堆栈信息视图是独立的如果您希望同时看到它们而且您的屏幕足够大您可以将它们铺开
视图被分组为透视图透视图通常是面向环境的这里有一个用于处理Java项目的Java透视图一个用于追蹤运行时问题的Debug透视图一个用于管理CVS连接的CVS透视图等等实际上透视图和视图的数目是可扩展的Eclipse的几乎每个部分都是可扩展的IDE为增加和扩充现有功能提供了多种方法这些功能为Eclipse社团的许多人所利用
Eclipse的所有资源和项目都具有属性在左边列表中的任意一项上右击再选择Properties就可以看到更详细的信息对于文件您可以看到文件自身的一些基本信息比如修改日期位置和权限对于项目有更多高级选项允许您设置Eclipse构建项目的方式
如果单击Java Build Path您将会看到四个控制构建行为的标签第一个是Source它允许您设置Eclipse将在哪里查找源文件还可指定哪些源文件是要用的哪些是可以忽略的下一个标签是Projects它允许您设置当前项目所依赖的项目这样您可以在一个项目中设置一些库或公共代码并从其他项目简单地包含该项目
下一个标签是Libraries它允许您将JAR文件库和类文件夹添加到类路径中最后您可以指定该项目将导出哪些资源这样该项目的属性就可以应用于导入该项目的其他项目
Eclipse是在中间大型源视图中进行构建的所有的编辑也是在那里进行的但是有一些事情要注意Eclipse提供的不仅仅是简单的文本视图首先文本的左边有一个小槽Eclipse用它来隐藏传递有用信息的图标一个红色的X会显示在Eclipse不能编译的行的旁边Eclipse认为可能存在错误的代码旁会有黄色的warning标志如未使用的导入语句(见图)
其次存在问题的代码被加上了适当颜色的下划线同样红色下划线代表编译错误黄色代表警告最后滚动条的右边有另一个小槽颜色在这里又一次被用来传达信息红色块标识有错误的代码区域黄色块标识警告代码区域单击色块会将光标直接移至问题代码将鼠标悬停在这三个带颜色的条目(图标下划线或块——图中显示了这三者)上可以打开相关问题的描述右击会出现上下文菜单
动态构建
使用Eclipse进行Java开发您首先注意到的就是它的编译是多么智能进入Preferences(WindowMenu > Preferences)并启用动态构建(Workbench > Build Automatically)现在每当您保存文件时Eclipse将会自动编译该文件以及依赖于该文件的文件因此当您想运行您的应用程序时它基本上已经保存好并且是最新版本当您处理大型代码基时这可以节约不少时间如果您不得不使用其他IDE那么您首先失去的就是该特性的简单性
当您使用Eclipse时您将会一次又一次地感受到这样一个底层原理IDE了解代码Eclipse不仅仅是一个能在以文件为中心的基础上处理代码和其他事情的编译器它还能够查看源代码并聪明地加以处理它的智能编译能力通过它能够明白表达在导入语句中的依赖性而得到了证明
智能搜索
Eclipse具有非常智能的搜索特性(Search Menu > Search)允许您搜索文件中整个项目中或一个文件组中出现的任何字符串这个特性很好但是还在变得更好Java搜索(Search Menu > Java)允许您将搜索限定为只查找类方法类型或其他Java了解的类别Eclipse可以找到以set开头的所有方法实现您可以轻易地找到您所有的写存取方法更好的是您可以在任意方法调用上控件单击(controlclick)从而进入它的实现或控件单击一个类名进入它的实现另外您可以在方法上右击找到所有它被使用的地方(References > Project)Eclipse对代码的了解有助于它导航大型代码基而您会从中获益
TODO任务链接创建
Eclipse还可以提醒您仍需执行的任务许多开发人员在代码中添加TODO注释来提醒他们还有特定的任务要完成或者特定的情况要处理Eclipse又一次利用它对Java结构的知识找到任何以TODO开头的注释并将它添加到一个特殊的Tasks视图(打开Window Menu > Show View > Other > Basic > Tasks就可看到)这样Eclipse可以提供一个全面的待完成的任务列表
此外您还可以配置Eclipse去识别您定义的其他标签打开Preferences(Window Menu > Preferences)并浏览到Task Tags页面(Java > Task Tags)您就可以添加新标签删除已有标签设置不同标签的属性为代码指定Eclipse提供的默认值
代码编写
您将会发现Eclipse实际上可以为您编写代码右击源文件在Source子菜单下提供了Eclipse可以修改或扩展代码的一些方法这会去做一些枯燥工作从而把您解脱出来其中最有用的代码编写能力是Generate Getters and Setters选项它将会扫描一个类以查找域并为这些域产生适当的存取方法
如果您选择了它将会弹出一个窗口让您指定要为之产生存取方法的域以及产生什么存取方法(getset或两者)您还可以指定产生的方法的权限(publicprivate等)相似地Eclipse可以基于超类及方法而产生构造函数以覆盖或封装超类方法
重构
Eclipse最强大的一个特性就是它对重构的健壮支持选中一个方法并右击鼠标您将会看到Refactor子菜单如果您使用该方法来改变一个方法名Eclipse将找到该方法的所有调用并将这些调用改变为使用新的方法名您也可以改变方法签名具体方法是通过添加参数同时令Eclipse改变所有现有调用来添加那个参数使用的是您指定的值当然您也可以删除您认为不再有用的参数或重新排列参数使界面更一致重构也可以工作在类的层次您可以将内部的类拖至它们自己的文件中或将类移至其他的包中
健壮的撤销支持
另一个非常好的特性叫做Local History这是一种极简单的本地CVS存储库每保存一次文件Eclipse将会记住这一保存并允许您在需要的时候退回到该保存在默认状态下它会记录过去天的保存(可以在Window Menu > Preferences > Workbench > Local History中修改这个默认设置)
当您采用新特性却破坏了不相干的特性时撤销机制可以挽回局面您可以快速地在两个版本间做一个异同比较看看您都做出了哪些改动并可以将改动退回到前一个版本甚至昨天的版本更好的是您可以只回退特定的方法而保留其他方法中的修改
JUnit集成
Eclipse可以很容易与JUnit框架一起使用如果您有按JUnit标准编写的类您可以在左边的Resources视图中选择类并运行测试(Run Menu > Run As > JUnit Test)Eclipse将会自动找到定义的测试套件并运行其中的所有测试使用它自己的定制UI来显示测试的运行及发现的错误常见的JUnit绿色线在测试失败的情况下会变成红色Eclipse将会为您显示导致出错的栈追蹤信息
让Eclipse来做吧
您看Eclipse提供了如此多的特性来自动完成一些枯燥繁重的工作使开发人员的生活更轻松由于平台的架构为您提供了很好的机会来找到一个插件帮助您完成特定的任务如果找不到您可以用Eclipse来编写它!