Eclipse插件开发基础实践(1)——一个Hello World插件

如果你是一个程序员,并且使用过Eclipse这样一个IDE开发过程序,那你对Eclipse插件一定不会陌生。因为在Eclipse中,几乎一切功能皆是插件。在Eclipse插件市场、GitHub等各种地方也有着多如牛毛的插件,不过如果你曾思考过这样一个问题:我能不能自己开发一些插件来灵活地实现自己独特的需求?那么本文我们就可以一起来探讨下如何开始开发属于自己的Eclipse插件。

本文将从Eclipse插件是什么、为什么要开发插件、怎样开发一个Hello Word插件以及下一步该怎么做四件事来探讨。

Eclipse插件是什么

说起"插件",我们很容易联想到一个东西,那就是电源插座和插头,像这样的:


一个插座上可以有很多个插孔,每个插孔都可以插入不同的插头,比如可以插我的电脑的充电插头,插手机的充电插头,插台灯的插头...概括来说,插座上的插孔提供了一种基础能力,那就是——提供电力,使用插孔提供的电力我们可以让形形色色的电器运转起来,从而让我们的生活变得多姿多彩。

Eclipse插件其实也就像插孔和插头,Eclipse核心层代码提供了基于操作系统的核心基础能力,将这些能力进行封装,并将封装后的能力根据一定的规范、以插孔的形式对外开放出来,千千万万的开发者可以基于这些插孔提供的各种能力,专注于开发自己需要的各种各样的插头(即各种插件)实现自己的需求,而不用陷入诸如"插孔的能力究竟是怎样实现的"这样的复杂的底层细节中去。

所以说Eclipse插件就是类似于插座插孔和插头这样一种东西,具有非常高的可扩展性。

为什么要开发Eclipse插件

如果我们日常使用Eclipse作为自己工作或学习的IDE,可能在有些时候希望有这样或那样一个插件,来帮助我们完成一些事情,比如对自己的代码做一些统计,或者想定时自动提交自己的代码到GitHub,或者想在Eclipse中就可以翻译英文单词而不用再打开浏览器使用谷歌翻译,或者想在Eclipse中就能看到今天的天气是怎样的(这种需求也是挺清奇的,但真的可能有这种需求)等等。

目前已经有千千万万的开发者开发的成千上万、数不胜数的插件,那么为什么我们还要自己开发插件?这是因为现实需求无限而插件有限,以有限满足无限,殆矣。

你总会遇到千奇百怪的实际需求,而不可能任何需求都恰好有对应的插件可以完美满足,这个时候就要我们自己动手开发满足自己特定需求的插件,且自己开发的插件可高度定制化,想怎么玩就怎么玩,具有充分的自由度。

从另一个方面来讲,Eclipse的用户群体十分庞大,如果你自己开发的插件所解决的问题比较有普遍性(比如做代码统计),别人可能恰好也有类似需求,那么你就可以把自己开发的插件分享(比如通过GitHub等)给其他人使用,或者开源出来和其他人交流(Eclipse本身就是开源的),体会帮助到别人的乐趣。

怎样开发一个Hello Word插件

安装Eclipse

插件开发需要使用for Java EE的Eclipse版本,Eclipse的具体安装细节这里不再赘述。

Eclipse官网下载地址:https://www.eclipse.org/downloads/

创建一个Hello World插件工程(plugin-in project)

  • 打开Eclipse,点击菜单file > new > other,找到并选择Plugin-in Project,然后点击Next按钮:
  • 输入工程的名称为HelloWorld,其他选项都保持默认,然后点Next
  • 这个页面的内容都保持默认,继续点Next
  • 在左边选择Hello, World这样一个模板,然后点Next
  • 在这里可以指定插件的包名、Action类名和运行程序后弹出的Hello World窗口所显示的文本,最后点击Finish
  • 经过上面的步骤,一个最简单的插件工程就创建好了,工程的结构如下,其中最重要的是META-INF目录下的MANIFEST.MF工程清单文件,它统领着插件的全局,以后会细讲。其次,Eclipse插件是基于Java语言开发的。

运行Hello World插件工程

  • 右键点击刚刚创建好的插件工程,点击Run As > Eclipse Application菜单:
  • 稍等片刻后,可以看到会启动一个新的Eclipse程序,并在工具栏有一个提示为Hello, Eclipse world的按钮:
  • 点击Hello, Eclipse world按钮,弹出一个弹窗如下:
  • 可以看到,我们的Hello World插件程序顺利运行起来了!弹窗中所展示的文字正是我们在创建插件工程最后一步所填写的文本内容。

下一步应该做什么

在了解了一个Hello World插件程序是怎样创建并运行起来之后,下一步要做的有:

  • 插件工程中各部分代码都是干什么的?
  • Eclipse工作台窗口的认识。
  • Eclipse插件体系结构——扩展点机制。

学习资源

下面是一些收集的学习资源:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343