当前位置: 首页 >> 程序设计 >> 管理Eclipse环境
 

管理Eclipse环境

作者:Chris Aniszczyk      来源:ibm     发表时间:2006-04-02     浏览次数:      字号:    

内容摘要 Eclipse 的持续发展意味着需要管理的项目和插件的数量一直在增长。为了跟上最新的 Eclipse 版本,这个管理过程会使开发人员感到灰心。对于新用户来说,项目、插件、工作区和安装的概念首先就可能使之感到畏缩。本文将介绍管理 Eclipse 环境的最佳实践。

管理插件

什么是插件?为什么我需要关心插件?

插件(plug-in,也称为 bundle)是 Eclipse 的功能块。在 Eclipse 中,所有的一切都有其相应的插件,这包括:

  • 透视图和视图
  • 编辑器
  • 建模工具
  • 登录和其他核心功能

事实上,整个 Eclipse IDE 就是被构建为一个大的插件集合。其他基于 Eclipse 的产品,例如 IBM Rational® Software Architect,通过添加新插件增强了基本的 Eclipse。

一组相关的插件组成特性。特性和它们的插件存在于 Eclipse 程序目录中(在这个例子中,Eclipse 被安装在 /opt/eclipse 目录中)。下面是目录布局的一个示例:


清单 1. Eclipse 特性和插件目录结构

/opt/eclipse/ 
   features/ 
      org.eclipse.jdt_3.1.1/
         feature.xml 
         ... 
   plugins/
      org.eclipse.jdt.ui_3.1.1.jar
      ...
      

Eclipse 可以有许多相同的插件,针对每个不同的版本有一个这样的插件。它知道如何解决插件依赖性、避免版本冲突,因此您永远不必担心同时安装两个 Subclipse 插件。

在长期使用 Eclipse 的过程中,您总是会通过下载第三方插件或是创建您自己的插件来增加新的功能。跨不同的 Eclipse 版本管理这些插件可能是个麻烦。因为插件存在于 Eclipse 程序目录中,所以如果您安装 Eclipse 的新版本,它们就会丢失。这意味着如果您有多个 Eclipse 安装,就必须保存大量插件的多个副本;甚至,在每次想要升级 Eclipse 时,您只能很麻烦地全部重新安装。

如果将插件存储于 Eclipse 程序目录以外的独立位置,当升级到 Eclipse 的新版本时,就不需要重新安装它们,而且,可以跨多个 Eclipse 版本共享插件。

实施控制:方法 1 —— 手动的文件系统扩展

有三种方法对插件实施控制。第一种方法是手动创建一个可以保存插件的目录(称之为产品扩展),将插件移到该目录,然后告诉 Eclipse 在这里寻找特性和插件。

在我们的例子中,我们会创建一个名为 /opt/eclipse-plugins 的位置用来存储插件。为了让 Eclipse 在这里存储插件,您必须首先创建如下的目录结构和文件:


清单 2. Eclipse 产品扩展目录结构

/opt/eclipse-plugins/ 
   eclipse/ 
      .eclipseextension
      features/ 
      plugins/
      

注意,除了创建这些目录以外,您还必须在 eclipse 目录(在我们的例子中,是指 /opt/eclipse-plugins/eclipse)中创建一个名为 .eclipseextension 的文件。这个文件让 Eclipse 知道在这里可以找到扩展。它应该有如下内容:


id=org.eclipse.platform name=Eclipse Platform
version=3.1.1

.eclipseextension 文件中的 version 属性应该设置为使用这个产品扩展的 Eclipse 的版本。该属性可以是特定的(3.1.1)、比较一般的(3.0.0)或者非常一般的(1.0.0)。在撰写本文时,版本号似乎对产品扩展的功能并没有任何影响。

注意,如果您使用的是 Windows®,则无法通过 Explorer shell 创建 .eclipseextension 文件。通过打开 NotePad,输入文件的内容,并将其保存为 .eclipseextension(确保文件类型选中为 “所有文件”,否则 Notepad 将会在文件名后添加 .txt),可以创建这样的文件。

下一件事是将这个插件位置告诉 Eclipse,以便它知道以后在这里寻找插件。选择 Help > Software Updates > Manager Configuration 得到 Product Configuration Manager,在这里完成这项工作。

使用 Product Configuration Manager,您可以添加新的 Eclipse 扩展。为了启用上面创建的扩展(/opt/eclipse-plugins),我们需要将它作为一个扩展位置添加。每一个人都已经有一个扩展位置,那就是 Eclipse 安装中的插件文件夹。在 Eclipse Platform 上右击,选择 Add > Extension Location 就可以添加另一个扩展。


图 1. 添加扩展位置
添加扩展位置

一旦您已经选中了插件所在的目录,插件就会显示在产品扩展的列表中。在这里,您可以检验插件是否已找到。


图 2. 查看一个扩展位置中的插件
查看一个扩展位置中的插件

Product Configuration 屏幕好的方面是,您可以很容易地禁用整个插件位置 —— 这在进行插件开发和测试不同配置时很有用。

实施控制:方法 2 —— 通过 Configuration Manager 添加产品扩展

不必在文件系统中创建文件夹和 .eclipseextension 文件,您可以让 Eclipse 为您创建产品扩展。

您可以在 Update Manager(Help > Software Updates > Find and Install)中创建新的产品扩展。在安装新的插件时,Eclipse 最终会提示您所要安装的位置。在这里,您可以单击 Change Location 以选择一个产品扩展。


图 3. 选择插件的安装位置
选择插件的安装位置

选择 Add Location。当您选定一个目录时,Eclipse 将在那里为您创建一个产品扩展。


图 4. 通过 Update Manager 创建一个新的产品扩展
通过 Update Manager 创建一个新的产品扩展

当您以后安装插件时,确保它们是被安装到您所想要的插件扩展地点(参见图 3 中的 Install Location 区域)

实施控制:方法 3 —— 创建管理产品扩展的 links 文件夹

如果在您的文件系统中已经有了产品扩展,例如我们在 方法 1 中创建的那个,那么您可以在 Eclipse 程序目录中创建一些简单的文件,告知 Eclipse 需要检查这些目录以寻找插件。

首先,在 Eclipse 安装文件夹(例如 /opt/eclipse)中创建一个名为 links 的目录。在这个目录中,您可以创建 *.link 文件(例如 emfPlugins.link)。每一个链接文件指向一个产品扩展位置。Eclipse 会在启动时扫描这个 links 文件夹,并在每个链接文件中所指向的产品扩展中寻找插件。下面是一个使用 links 文件夹的 Eclipse 安装布局的例子:


清单 3. 使用 links 文件夹的 Eclipse 安装布局

/opt/eclipse/
     links/
          emfPlugins.link
          webtools.link
          updateManager.link
          ...
     ...
     

链接文件的内容看上去应该像下面这样:


path=/opt/plugins/emf/

Windows
在本文中,我们着重介绍 Eclipse 的 Linux® 安装。所有提供的示例清单对于 Windows 都是有效的。您仅仅需要将路径替换为相应的 windows 路径。另外请注意,在 Windows 中,路径中需要使用双反斜杠(例如 path=c:\\plugins\\emf)。

/opt/plugins/emf/ 有一个 Eclipse 产品扩展的目录结构,如 清单 1 所示。

这个方法的优势在于,所有的插件位置被作为一个文件夹中的文本文件来存储。这意味着您可以通过简单地将 links 文件夹复制到新的 Eclipse 安装中,来升级 Eclipse 并使其指向您的产品扩展文件夹。您也可以通过从每个 Eclipse 安装建立一个到 links 文件夹的符号链接,获得一个针对所有 Eclipse 安装的公用 links 文件夹(如果您的文件系统支持符号链接)。






管理 Eclipse 工作区

[1] [2]

编辑 webmaster

 
 
 
评论更多>>
 
 
发表
 
姓名: QQ:
性别: MSN:
E-mail: 主页:
评分: 1 2 3 4 5
评论内容:
验证码:
  
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  •