常用开发工具Eclipse的实现机制和原理是什么?

我们学习和开发过程中用到Java的地方,就有Eclipse的影子,Eclipse平台是目前流行的Java开发工具之一,很重要的一个原因是它开源免费;有人会说我用的是MyEclipse,它的功能更强大,其实MyEclipse是Eclipse的升级版,使用更方便但它是收费的,不管它免费还是收费,它们都极大的方便了我们的开发;Eclipse之所以能升级为MyEclipse,是因为Eclipse平台是建立在OSGi框架之上,插件式开发,每个开发者都可以实现自己的插件,是不是很牛啊,可以做编程工具了,下面学习一下Eclipse平台的机制和原理。

网络配图 因Eclipse平台是建立在OSGi框架之上,我们首先要简单了解一下OSGi框架是什么? OSGi(全称Open Service Gateway Initiative)技术即面向Java的动态模型系统是Java动态化模块化系统的一系列规范。OSGi一方面指维护OSGi规范的OSGI官方联盟,另一方面指的是该组织维护的基于Java语言的服务(业务)规范;简单来说,OSGi可以认为是Java平台的模块层。关于OSGi框架了解这些就可以了。 Eclipse平台是遵循OSGi框架协议的一个插件的集合,这个插件框架非常的复杂;我们用一图来说明一个插件是如何工作的,如下图

网络配图 在Eclipse工作平台中每种插件之间存在两种关系: 1、依赖;在上面的图中,插件依赖插件B。 2、扩展;在上面的图中,插件扩展插件C。 以上简单了解了Eclipse的插件关系;可以说整个Eclipse就是由插件组成的,我们先看下它明晰的层次关系,它的插件层 次图,如下所示: +Eclipse SDK org.eclipse.sdk +Eclipse Platform +RCP org.eclipse.core.runtime org.eclipse.ui org.eclipse.update.configurator org.eclipse.swt org.eclipse.jface org.eclipse.platform org.eclipse.debug org.eclipse.ant org.eclipse.help ... +JDT org.eclipse.jdt.core org.eclipse.jdt.ui org.eclipse.jdt.doc org.eclipse.jdt.debug org.eclipse.jdt.junit +PDT org.eclipse.pde org.eclipse.pde.build org.eclipse.pde.core org.eclipse.pde.runtime org.eclipse.pde.ui org.eclipse.pde.doc org.eclipse.pde.source 从上面的结构可以看出,Eclipse SDK是这些插件的总和;在这些插件中,最核心的是RCP所用的几个插件, org.eclipse.core.runtime,org.eclipse.ui。org.eclipse.core.runtime主要提供跨平台的运行时支持,以及对其它插件 的管理机制;而org.eclipse.ui则提供跨平台的界面支持。

网络配图 总结一下,Eclipse平台首先是基于OSGi框架,由大量插件通过依赖和扩展两种关系组合在一起,形成了一个功能强大的开发工具。 在之后的软件设计和开发过程中,我们可以借鉴一下Eclipse的插件思想,把它运用到软件当中,使软件具有更好的重用性和重组性,提高软件的实用价值。 以后的章节中会介绍如何开发出一个Eclipse的插件,并安装到Eclipse平台上,我们也能给Eclipse的发展做贡献,是不是咱自己好强大啊!!!

原文发布于微信公众号 - Java学习网(javalearns)

原文发表时间:2017-10-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT大咖说

聊聊容器调度框架,看又拍云如何基于mesos实现

摘要 为了更好地完成云处理服务的负载均衡, 零停机升级, 自定义策略调度等功能, 又拍云用 Go 实现了自己的容器调度框架, 管理长期服务和定时任务。 嘉宾演讲...

41311
来自专栏FreeBuf

Windows系统的JScript组件被曝存在一个0day RCE

近期,Telspace Systems公司的安全研究专家Dmitri Kaslov在Windows操作系统的JScript组件中发现了一个严重的安全漏洞,而这个...

980
来自专栏jojo的技术小屋

原 荐 微信小程序、微信公众号、H5之间能相

作者:汪娇娇 时间:2017年10月10日 话不多说,直接进入正文。 一、小程序和公众号 答案是:可以相互关联。 在微信公众号里可以添加小程序。 ? 图片有点...

4495
来自专栏FreeBuf

看我如何发现苹果公司官网Apple.com的无限制文件上传漏洞

最后,我也因此测试漏洞收获了苹果官方不菲的赏金,以及漏洞名人堂的入榜致谢。好吧,我们一起来看看这个苹果官网的无限制文件上传漏洞。

1453
来自专栏云计算D1net

深度剖析众多的Azure管理工具

自从Windows Azure首次发布以来,微软公司的首要重点就一直是开发出一套工具来帮助用户管理其资源。这个云计算平台是出了名地难于管理,但是微软公司也在一直...

3527
来自专栏Spark学习技巧

Apache Kafka:优化部署的 10 种最佳实践

Apache Kafka 肯定会像它的同名小说家一样不负众望,因为它能激奋新来者、挑战深度,若能更全面的理解它还会产生丰厚的回报。抛开文学,书归正传。遵循 ka...

1612
来自专栏Java后端技术栈

大型网站技术架构总结一二

早期的网站为了节省成本一般会设计成集中式系统,应用程序、数据库等都部署在一台服务器上。 但随着业务的快速度发展,逐渐出现瓶颈,按一定原则**(应用拆分、服务拆分...

1192
来自专栏dotnet & java

不要使用Resource Owner Password Credentials

最近公司项目在做一些重构,因为公司多个业务系统各自实现了一套登录逻辑,比较混乱。所以,现在需要做一个统一的鉴权登录中心,准备用IdentityServer4来实...

1104
来自专栏FreeBuf

新款zANTI卷土重来:高级移动渗透和安全分析工具包

zANTI是一款使用起来非常方便的移动端渗透测试工具和安全分析工具。在zANTI的帮助下,你可以模拟出现实世界最常见的网络渗透技术。不仅如此,你还可以利用zAN...

1273
来自专栏jojo的技术小屋

原 荐 微信小程序、微信公众号、H5之间能相

2855

扫码关注云+社区