eclipse入门
编者注: 2007年7月发布了本文的更新版本,标题为“ Eclipse平台入门 ”。此原始版本将仍然可供参考。 阅读新文章以了解Eclipse中的最新功能。
什么是Eclipse?
Eclipse是基于Java的可扩展开源开发平台。 就其本身而言,它只是一个用于从插件组件构建开发环境的框架和一组服务。 幸运的是,Eclipse附带了一套标准的插件,包括Java开发工具(JDT)。
尽管大多数用户都非常乐意将Eclipse用作Java IDE,但它的雄心壮志并不止于此。 Eclipse还包括插件开发环境(PDE),这是希望扩展Eclipse的开发人员所主要感兴趣的,因为它允许他们构建与Eclipse环境无缝集成的工具。 由于Eclipse中的所有内容都是插件,因此所有工具开发人员都有一个公平的竞争环境,可以提供Eclipse的扩展并为用户提供一致,统一的集成开发环境。
这种奇偶性和一致性不仅限于Java开发工具。 尽管Eclipse是用Java语言编写的,但是它的使用并不限于Java语言。 例如,可以使用或计划使用包含对编程语言(如C / C ++和COBOL)的支持的插件。 Eclipse框架还可以用作与软件开发无关的其他类型的应用程序的基础,例如内容管理系统。
基于Eclipse的应用程序的首要示例是IBM®WebSphere®Studio Workbench,它构成了IBM Java开发工具系列的基础。 例如,WebSphere Studio Application Developer添加了对JSP,Servlet,EJB,XML,Web服务和数据库访问的支持。
Eclipse是开源的
开源软件是带有许可证的软件,旨在确保将某些权限授予用户。 当然,最明显的权利是必须提供源代码,以便用户可以自由修改和重新分发软件。 用户权利的保护是通过一种称为copyleft的设备来实现的:软件许可要求版权保护,除非用户被授予这些权利,否则禁止分发。 Copyleft还要求所有重新分发的软件均受同一许可证的保护。 因为实际上,这实际上是版权的目的,即使用版权向用户授予权利,而不是将其保留给软件开发人员,因此copyleft通常被称为“所有权利都被颠倒了”。
对开源软件的担忧,不确定性和疑虑大多涉及某些Copyleft许可证的所谓病毒性质,即如果您将开源软件用作开发的程序的一部分,那么您将会迷失方向。您的知识产权,因为许可将“感染”您开发的专有部件。 换句话说,许可证可能要求与开源软件捆绑在一起的所有软件,包括任何新开发的软件,都必须在同一许可证下发布。 尽管对于最著名的copyleft许可证(即GNU通用公共许可证)(例如,发行Linux®的GNU通用公共许可证)来说,这可能是正确的,但还有其他许可证可以在商业和社区关注之间提供更好的平衡。
开放软件计划组织是一个非营利性组织,它明确定义了开放源代码的含义并证明符合其标准的许可证。 Eclipse已获得OSI批准的通用公共许可证(CPL)V1.0的许可,“旨在促进本程序的商业使用...”(有关通用公共许可证V1.0的全文,请参阅“ 相关”)。主题 )。
为Eclipse创建插件或使用Eclipse作为软件开发应用程序基础的开发人员必须发布他们在CPL下使用或修改的所有Eclipse代码,但可以自由使用自己喜欢的方式许可自己的添加。 与Eclipse的软件捆绑在一起的专有代码不需要被许可为开放源代码,并且不需要提供源代码。
尽管大多数开发人员不会使用Eclipse来开发插件或基于Eclipse来创建新产品,但是Eclipse的开源性质非常重要,不仅因为它使Eclipse免费可用(而且尽管它具有商业友好性)许可意味着插件可能会花费金钱)。 开源鼓励创新,并激励开发人员,甚至商业开发人员将代码贡献回通用的开源代码库。 造成这种情况的原因很多,但也许最重要的是,开发人员对项目的贡献越多,该项目对每个人的价值就越高。 随着项目变得越来越有用,越来越多的开发人员将使用它并围绕它创建一个社区,就像围绕Apache和Linux形成的社区一样。
谁是Eclipse?
Eclipse.org联盟管理和指导Eclipse的持续开发。 Eclipse.org联盟是由IBM创建的,据报道,该公司花费4,000万美元开发Eclipse并将其作为一个开源项目发布,并招募了许多软件工具供应商,其中包括Borland,Merant,Rational,RedHat,SuSE,TogetherSoft和QNX。 此后,其他公司也加入了,包括惠普,富士通和Sybase。 这些公司各自任命了代表委员会的代表,该代表确定Eclipse项目的方向和范围。
在最高级别,项目管理委员会(PMC)管理Eclipse项目。 该项目分为多个子项目,每个子项目都有一个负责人。 大型子项目分为多个部分,每个子项目也都有一个负责人。 目前,这些管理角色中的大多数由最初开发Eclipse的IBM子公司Object Technology International(OTI)担任,但是作为一个开源项目,欢迎任何人参加。 任何特定作品的责任都是通过对项目的贡献来实现的。
现在,我们已经了解了Eclipse背后的一些理论,历史和政治,让我们看一下产品本身。
Eclipse工作台
第一次打开Eclipse时,您会看到欢迎屏幕。
图1. Eclipse工作台
Eclipse Workbench由几个称为view的面板组成,例如左上方的Navigator视图。 面板的集合称为透视图 。 默认的透视图是资源透视图,它是一组基本的通用视图集,用于管理项目以及查看和编辑项目中的文件。
导航器视图使您可以创建,选择和删除项目。 导航器右侧的面板是编辑器区域 。 根据在导航器中选择的文档类型,将在此处打开一个适当的编辑器窗口。 如果Eclipse没有为特定文档类型(例如Windows®系统上的.doc
文件)注册适当的编辑器,则Eclipse将尝试使用外部编辑器打开文档。
导航器下方的“ 大纲”视图在编辑器中显示文档的大纲。 该大纲的确切性质取决于编辑器和文档的类型。 对于Java源文件,大纲显示所有已声明的类,属性和方法。
任务视图收集有关您正在处理的项目的信息。 这可以是Eclipse生成的信息,例如编译错误,也可以是您手动添加的任务。
工作台的大多数其他功能,例如菜单或工具栏,应与熟悉的应用程序相似。 一个方便的功能是出现在屏幕左侧的快捷键工具栏,用于显示不同的视角。 这些会根据上下文和历史动态变化。 Eclipse还带有一个强大的帮助系统,该系统包括Eclipse工作台的用户指南以及所包含的插件(例如Java开发工具)。 值得至少浏览一次帮助文件以查看可用选项的范围并更好地了解Eclipse的流程。
为了继续进行Eclipse的简短介绍,我们将在Navigator中创建一个项目。 在“导航器”视图中右键单击,然后选择“ 新建”>“项目” 。 当出现“新建项目”对话框时,选择左侧的Java。 标准Eclipse只有一种类型的Java项目,称为Java项目。 如果安装了一个插件来提供对JSP和Servlet的支持,我们将在此处看到用于Web应用程序的附加选项。 现在,选择Java Project,在提示输入项目名称时输入“ Hello”,然后单击Finish 。
接下来,我们将看一下Java透视图。 根据您想要管理屏幕的方式,可以通过选择“ 窗口”>“打开透视图”>“ Java”来更改当前窗口中的透视图,也可以通过选择“ 窗口”>“新建窗口”并选择新的透视图来打开新窗口。
正如您可能期望的那样,Java透视图具有一组更适合Java开发的视图。 其中之一包括作为层次结构的左上视图,该层次结构包含各种Java包,类,JAR和其他文件。 该视图称为程序包资源管理器。 还要注意,主菜单已扩展为包括两个新菜单项:“源”和“重构”。
Java开发环境(JDE)
为了尝试Java开发环境,我们将创建并运行Hello World应用程序。 使用Java透视图,右键单击Hello项目,然后选择New> Class ,如图2所示。在出现的对话框中,输入“ Hello”作为类名。 在“您要创建哪个方法存根?”下 检查“ public static void main(String [] args)”,然后单击“ 完成” 。
图2.在Java透视图中创建一个新类
这将在编辑器区域中创建一个带有Hello
类和一个空main()
方法的.java
文件,如图3所示。向该方法中添加以下代码(请注意, i
的声明已被故意省略):
图3. Java编辑器中的Hello类
键入时,您会注意到Eclipse编辑器的某些功能,包括语法检查和代码完成。 在V2.1(我通过下载版本M2进行预览)中,当您键入一个开放的括号或双引号时,Eclipse将自动提供其伙伴并将光标放在该对中。
在其他情况下,可以使用Ctrl + Space调用代码完成。 代码完成提供了上下文相关的建议列表,可通过键盘或鼠标选择。 建议可以是特定于特定对象的方法的列表,也可以是基于诸如for
或while
各种关键字扩展的代码段。
语法检查取决于增量编译。 保存代码时,它会在后台编译并检查语法错误。 默认情况下,语法错误用红色下划线标出,带有白色X的红点出现在左边距中。 其他错误在编辑器的左边缘以灯泡指示; 这些都是编辑器可能为您解决的问题-一种称为“快速修复”的功能。
上面的代码在for
语句旁边有一个灯泡for
因为省略了i
的声明。 双击灯泡将显示建议修复的列表。 在这种情况下,它将提供创建类字段i
,局部变量i
或方法参数i
; 单击这些建议中的每一个,将显示将要生成的代码。 图4显示了建议列表及其为局部变量建议的代码。
图4.快速修复建议
双击建议将代码插入代码中的正确位置。
一旦代码编译正确无误,您可以通过从Eclipse菜单中选择Run来执行程序。 (请注意,没有单独的编译步骤,因为在保存代码时会进行编译。如果您的代码没有语法错误,则可以运行。)将出现“启动配置”对话框,其中包含适当的默认值;否则,将显示错误消息。 点击右下角的运行 。 新的选项卡式面板出现在下部面板(控制台)中,显示程序的输出,如图5所示。
图5.程序输出
您也可以在Java调试器中运行该程序。 首先,通过双击编辑器视图左侧的灰色边距(在对System.out.println()
的调用旁边main() System.out.println()
,在main() System.out.println()
设置一个断点。 将出现一个蓝点。 从运行菜单中,选择调试。 如上所述,将出现“启动配置”对话框。 选择运行。 该透视图将自动变为Debug透视图,其中包含许多有趣的新视图,如图6所示。
图6. Debug透视图
首先,请注意透视图左上方的“调试”视图。 该视图显示了调用堆栈,并在标题栏中提供了一个工具栏,该工具栏使您可以控制程序的执行,包括用于恢复,暂停或终止程序的按钮,进入下一条语句,移至下一条语句或返回的按钮。从一种方法。
右上角的面板包含许多选项卡式视图,包括变量,断点,表达式和显示。 我单击了Variables,所以我们可以看到i
的当前值。
您可以使用上下文相关的帮助获取有关任何视图的更多信息:单击视图标题,然后按F1 。
附加插件
除了用于编辑,编译和调试应用程序的JDT之类的插件外,还提供插件来支持完整的开发过程,包括建模,构建自动化,单元测试,性能测试,版本控制和配置管理。
Eclipse带有用于与CVS一起使用的插件,CVS是用于源代码控制的开源Concurrent Versions系统。 Team插件连接到CVS服务器,从而使开发团队的成员可以处理一组源代码文件,而无需彼此进行更改。 Eclipse内部的源代码控制将不再在这里进行探讨,因为它需要设置CVS服务器,但是支持开发团队的能力(不仅是独立开发)是Eclipse的重要且不可或缺的功能。
第三方插件包括:
版本控制和配置管理
- CVS
- Merant PVCS
- Rational ClearCase
UML建模
- OMONDO EclipseUML
- Rational XDE(代替Rose)
- 一起WebSphere Studio Edition
图形
- 蜡染SVG
- Macromedia Flash
Web开发,HTML,XML
- Macromedia Dreamweaver
- XML好友
应用服务器集成
- Sysdeo Tomcat启动器
有关可用插件的更完整列表,请参阅参考资料 。
示例:UML建模插件
要查看插件的例子,看看它是如何与Eclipse集成,下载流行OMONDO EclipseUML(参见相关主题 ); 您需要注册,但是该插件是免费的。 该插件依赖于另一个用于Eclipse的图形编辑器框架(GEF)。 GEF是“工具”子项目的一部分。 要下载GEF,请转到Eclipse网站(请参阅参考资料 ),选择Downloads,然后单击Tools PMC downloads页面的链接。 请注意,您将需要下载OMONDO推荐的GEF版本(OMONDO V1.0.2的GEF V2.0)。
下载后,通常通过解压缩下载文件并将其内容复制到Eclipse插件目录来安装插件。 在这种情况下,GEF要求将其解压缩到Eclipse目录中(它会自动从其中进入插件目录),而EclipseUML则需要直接解压缩到Eclipse目录的plugins子目录中。 为了安全起见,您可能需要将它们解压缩到一个临时目录中,并从那里适当复制目录。 如果Eclipse正在运行,则需要停止并重新启动它才能识别插件。
一旦安装了EclipseUML(和GEF),就可以像创建Java类文件一样创建类图。 在Java透视图中,右键单击Package Explorer中的Hello项目,然后从弹出菜单中选择New> Other 。 “新建”对话框的左侧面板中将为UML提供一个新选项。 EclipseUML的免费版本仅支持类图,因此右侧的唯一选项是UML类图。 选择“ UML类图”,然后输入类图的名称,例如“ Hello”:
图7.类图编辑器
在编辑器区域中,将出现一个图形编辑器,其中带有用于类图的空白画布。 创建类图的方法有两种:通过对Java代码从Package Explorer拖放到类图的逆向工程,或者使用空白图上方工具栏中的绘图工具,对现有代码进行反向工程。 要尝试第一种方法,请创建一个名为Person的新类(使用File> New> Class ),并为其提供下面列出的两个私有属性。
清单1.两个私有属性
/** Person.java
* @author david
*/
public class Person {
private String name;
private Address address;
/**
* Returns the address.
* @return Address
*/
public Address getAddress() {
return address;
}
/**
* Returns the name.
* @return String
*/
public String getName() {
return name;
}
/**
* Sets the address.
* @param address The address to set
*/
public void setAddress(Address address) {
this.address = address;
}
/**
* Sets the name.
* @param name The name to set
*/
public void setName(String name) {
this.name = name;
}
}
(我应该承认,我只在name和address属性中输入了这些行。通过右键单击源代码并从弹出菜单中选择Source> Generate Getter and Setter ,getter和setter方法是通过Eclipse自动生成的。 )
保存并关闭Person.java Hello.ucd
。
图8. Person类图
要从UML创建Java类,请在类图窗口顶部的工具栏上单击“ 新建类 ”,从左侧单击第三个按钮,然后单击类图。 当“新建班级”向导打开时,输入“地址”作为班级名称,然后单击“ 完成” 。
您可以通过右键单击类名称并选择New> Attribute来向该类添加属性 。 在“新建属性”对话框中,输入属性名称,类型和可见性。 通过右键单击类名称并选择New> Method来添加方法。
更改图表时,图表下方的“源代码编辑器”窗口将反映所做的更改。 最后,您可以通过单击“关联”按钮(左侧的第五个)并绘制从Person类到Address类的线来绘制类之间的关系。 这将弹出另一个对话框,可以在其中输入关联属性(有关所需信息的更多信息,请参阅EclipseUML帮助)。 该图应类似于图9。
图9.关联
该UML插件演示了Eclipse插件的一些典型特征。 首先,它显示了工具之间的紧密集成。 从来没有显而易见的是有多个组件在起作用。 与Eclipse平台和JDT的集成是无缝的。 例如,创建Person类时,由于未定义其属性之一Address
,它显示语法错误。 一旦在UML图中创建了Address
类,这些就消失了。
另一个特性是EclipseUML能够建立在其他插件(在本例中为GEF)提供的功能的基础上,GEF提供了用于开发可视化编辑器的工具。
另一个特性涉及使用几层功能分配EclipseUML插件的方式。 支持类图的基本插件是免费的,但需要付费才能使用更复杂的版本。
Eclipse平台架构
Eclipse平台是一个框架,其中包含一组功能强大的服务,这些服务支持插件,例如JDT和插件开发环境。 它由几个主要组件组成:平台运行时,工作区,工作台,团队支持和帮助。
图10. Eclipse平台架构
平台
平台运行时是在启动时发现安装了哪些插件并创建有关它们的信息的注册表的内核。 为了减少启动时间和资源使用,它不会加载任何插件,直到实际需要它为止。 除内核外,其他所有内容均作为插件实现。
工作空间
工作区是负责管理用户资源的插件。 这包括用户创建的项目,这些项目中的文件以及对文件和其他资源的更改。 工作区还负责通知其他感兴趣的插件有关资源的更改,例如创建,删除或更改的文件。
工作台
工作台为Eclipse提供了一个用户界面(UI)。 它是使用Standard Widget Toolkit(SWT)(一种Java的Swing / AWT GUI API的非标准替代品)以及在提供UI组件的SWT之上构建的高级API JFace构建的。
SWT已被证明是Eclipse中最具争议的部分。 与Swing或AWT相比,SWT与基础操作系统的本机图形功能的映射更为紧密,这不仅使SWT更快,而且使Java程序的外观更像本机应用程序。 使用这种新的GUI API可能会限制Eclipse工作台的可移植性,但是已经可以使用最流行的操作系统的SWT端口。
Eclipse对SWT的使用只会影响Eclipse本身的可移植性-不会影响使用Eclipse构建的任何Java应用程序,除非它们使用SWT而不是Swing / AWT。
团队支持
团队支持组件负责为版本控制和配置管理提供支持。 它根据需要添加视图,以允许用户与正在使用的任何版本控制系统进行交互。 除非大多数插件提供版本控制服务,否则它们无需与团队支持组件进行交互。
救命
帮助组件与Eclipse Platform本身的可扩展性并行。 与插件向Eclipse添加功能的方式相同,帮助提供了一种附加的导航结构,该结构允许工具以HTML文件的形式添加文档。
Eclipse的预测
围绕Eclipse的技术正在发展。 主要的软件工具供应商已经加入,并且开源Eclipse插件项目的数量每天都在增长。
便携式,可扩展的开源框架并不是一个新主意,但是由于其成熟,健壮和优雅的设计,Eclipse带来了全新的动力。 IBM向开源领域发布了价值4000万美元的世界一流软件,这已经以一种很长时间以来未曾见过的方式发生了动摇。
翻译自: https://www.ibm.com/developerworks/opensource/library/os-ecov/index.html
eclipse入门