可以简单地把plugin放到eclipse SDK本身的featuresplugins目录下来进行plugin的安装,但是这种方法并不利于plugin的管理:
虽然可以通过eclipse SDKupdate功能来升级自身,然而因为速度的原因我们一般还是会选择完全下载新版本,这样就需要把后来安装到eclipse SDK目录下的plugin都挑选出来并拷贝到新版本的eclipse SDK目录下,如果这样的plugin比较多的话将会有些麻烦。
有时候会共存多个版本的eclipse SDK,显然我们并不想把这些plugin拷贝到每个版本的eclipse SDK
  eclipse platform是支持把plugin安装到其他目录的,不过它对这些目录是有要求的:该目录必须有一个名为eclipse的子目录,eclipse子目录下必须有一个.eclipseextension文件,plugin本身放在eclipse子目录下的featuresplugins目录下。这样的一个位置就是一个eclipse extension.eclipseextension文件描述了这个eclipse extension,包括三项nameidversion;可以有多个eclipse extension,具体创建几个eclipse extension,每个eclipse extension包含哪些plugin,完全视情况而定,比如可以把关系比较密切的几个plugin放在一个eclipse extension中。


  显然我们必须告诉eclipse platform这些eclipse extension的位置才行,这有两种方法:
eclipse启动后用,打开Help->Software Updates/Manager Configuration,用Add an Extension Location来添加eclipse extesnion,指定的位置将会被存放到当前的configuration
eclipse platform所在的eclipse目录下建一个links目录,在该目录下放一些以.link结尾的文件,文件中指定eclipse extension的位置,每行一个,格式为path=location,路径分隔符为正斜杠,如果用反斜杠必须用两个以转义
  第一种方法是把eclipse extension的位置保存在当前configuration中,因此用这种方法指定的eclipse extension是特定于configuration的,不同的configuration可以具有不同的eclipse extension配置,可以在启动时用-configuration选项来选择一个configuration,但是似乎当添加完eclipse extension后是不能删除的,只能disable,而且多个configuration也带来了管理的负担;第二种方法比较明了,但它是configuration insensitive的,不管以哪个configuration运行这些eclipse extension都是可见的,这里不用担心内存的占用问题,因为eclipseplugi
n都是lazy loading的,用不到的plugin是并不会占用内存空间的,不过可能会有plugin冲突问题,比如两个插件在同一个extension point处扩展,而对extension point的处理又是不可配置的,比如选择extension的策略是到的第一个extension,而此时如果我们希望运行的extensioneclipse哪个版本好恰好排在第二位,那么就有问题了,这时可能就需要两种方法都用到了。

  配置好eclipse extension后,这些eclipse extension中的plugin就和eclipse platform/sdk中的plugin,按照extensionextension point的关系,共同形成了一个插件网络,这时各个plugin的位置已经没有区别了,你甚至可以指定运行位于eclipse extension中的product

  一般的plugin包都会把eclipse目录打进去,这样只要把该包直接解压到选定的eclipse extension目录中即可,不过如前所述,要成为真正的eclipse extension目录,还需要一个.eclipseextension文件,除了手工建立外,当从update site安装plugin时还可以让eclipse来建立它,只要在安装对话框弹出时选择change location指定一个目录即可。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。