一直觉得 Equinox 的 P2 是个神秘的东西,常常使得 Eclipse 或 Equinox 表现出一些奇怪的行为,于是找来官方文档读一读,试图更好地理解与应用 Equinox 。

官方文档很多,只能挑其中比较关注的部分来阅读,边看边记下吧。

1、 Getting Start ---原文:http://wiki.eclipse.org/Equinox/p2/Getting_Started

  P2 全称是 provisioning platform ,用于替代 Eclipse 3.4 及以前版本中的 Update Manager 功能,用于管理 Eclipse 插件的安装、搜索升级等。

  P2 的UI替换了原来的 Update Manager 功能的菜单 Help > Software Updates,包含了安装、升级站点管理等功能。

  Eclipse 中 P2 相关的目录和文件有:

eclipse/
configuration/
config.ini
org.eclipse.equinox.simpleconfigurator/
bundles.info
dropins/

features/
p2/

plugins/
eclipse.exe
eclipse.ini

   bundles.info 列出了当前安装的全部插件,这些插件在启动时将被运行。通过P2的界面进行插件的安装(install)或者卸载将导致此文件的修改。

   dropins 目录受到 P2 监视,用于手动往目录放入插件文件的方式安装插件,这点类似于以前版本(3.4以前)的 plugins 目录。但与以前不同,P2 并不保证放入 dropins 的目录就一定会被安装到系统中(注:这点值得注意),如果放入的插件无法被正确解析,或者与现有的已安装的插件产生冲突,则插件将不会得到安装,且不会输出任务异常信息到日志

  为了保持向前兼容,P2 也会检测安装放入到 plugins 目录的插件,但这些手工放入的插件会被特殊对待,这其中的规则是:如果手工安装的插件,也只能手工卸载(uninstall),而无法通过 P2 卸载。推荐的方法是:尽量避免对 plugins 目录进行手工操作,手工操作应通过 dropins 目录进行。

  dropins 支持的目录结构:

 eclipse/
dropins/
org.eclipse.core.tools_1.4.0..jar
org.eclipse.releng.tools_3.3.0.v20070412/
plugin.xml
tools.jar
... etc ...
...
 eclipse/
dropins/
eclipse/
features/
plugins/
 eclipse/
dropins/
emf/
eclipse/
features/
plugins/
gef/
eclipse/
features/
plugins/
... etc ...
 eclipse/
dropins/
emf.link

  诊断:

  如果放入 dropins 的插件未被安装,首先检查  org.eclipse.equinox.ds 和 org.eclipse.equinox.p2.reconciler.dropins 是否被标识为自动启动(auto-start)(注:不清楚这两个指的是插件名称还是两个配置项,仅记录原文档的描述,以后有新发现了再更新)。

  如果发生了解析错误,默认情况下错误信息会被完全忽略而不会向日志或控制台输出。如果需要将这些信息输出到日志,可以在 .option 文件中加入以下的配置项,并且以参数 "-debug path/to/.options" 运行。

org.eclipse.equinox.p2.core/debug=true
org.eclipse.equinox.p2.core/reconciler=true

  

Equinox P2 介绍(一)Getting Start的更多相关文章

  1. Equinox P2的学习

    product.configuration 点击“Add按钮”并添加以下插件: org.eclipse.equinox.p2.ui org.eclipse.equinox.p2.ui.sdk org. ...

  2. eclipse p2更新官网wiki的例子

    官网的cvs好像没了,不过在github上找到一份,可用. https://github.com/anthonydahanne/make-p2-buildable-with-tycho/tree/ma ...

  3. 定制Eclipse IDE之功能篇(一)

    上文回顾:定制Eclipse IDE之界面篇   这一篇文章将记录一些Eclipse插件拓展(extension),简单讲述常用拓展的用法,但可能不会那么详细. 我的主要插件的拓展如下:   一.or ...

  4. 【JAVA 文件概述】

    一.概述 使用此类的原因: 该类将文件或者文件夹封装成对象.方便对文件与文件夹的属性信息进行操作.File对象作为参数传递给流的构造函数.要求:使用File类的常用方法. windows平台下,目录分 ...

  5. 使用Eclipse Installer安装Eclipse

    由于一些原因,需要重新安装Eclipse,登陆到Eclipse官网下载Eclipse时发现社区又推出了Eclipse Installer.所以就下下来尝尝鲜. 刚开始确实有些选项不太明白,不过现在挺喜 ...

  6. 深入理解OSGI:Java模块化之路

    简介 Java可能是近20年来最成功的开发技术,因其具备通用性.高效性.平台移植性和安全性而成为不同硬件平台理想的开发工具.从笔记本电脑到数据中心,从游戏控制台到科学超级计算机,从手机到互联网,Jav ...

  7. 安装Java的IDE Eclipse时出现java.net.SocketException,出现错误Installer failed,show.log

    ERROR: org.eclipse.equinox.p2.transport.ecf code=1002 Unable to read repository at http://download.e ...

  8. 【转】eclipse luna 无法安装veloeclipse问题

    转载地址:https://code.google.com/p/veloeclipse/issues/detail?id=47 I tried to install veloeclipse 2.0.8 ...

  9. linux下安装jdk+tomcat+eclipse+mysql

    我的环境:主机是win7的,虚拟机是VWare  Workstation 6.0   ,linux系统为Red Hat Enterprise  Linux 5 64位 各软件版本:jdk是jdk-6u ...

随机推荐

  1. aspose导出excel文件

    using Aspose.Cells; using System; using System.Collections.Generic; using System.Data; using System. ...

  2. PHP易混淆函数的区别及用法汇总

    本文实例分析了PHP易混淆函数的区别及用法.分享给大家供大家参考.具体分析如下: 1.echo和print的区别PHP中echo和print的功能基本相同(输出),但是两者之间还是有细微差别的.ech ...

  3. 从Python学习中得到的一点启发 - Java逆向索引ArrayList

    看了几天Python,感觉记忆力不行了,很多东西记不住了.但是终归是得到了一点知识:重写一个ArrayList,允许从负值的索引得到指定的项.然后写一个得到斐波拉契数组的方法,这种方法要比递归调用的方 ...

  4. MapWinGIS------下载与安装

    最新版本下载地址: https://github.com/MapWindow/MapWinGIS/releases 1.下载后按步骤安装即可 2.右键以管理员身份运行cmd,运行:regsvr32 C ...

  5. Windows Server 2008 + SQL Server 2005集群

    一. 基础环境 1. 服务器规划 2. 网络拓扑 二. 相关说明 1.为了节约服务器资源,AD服务器可以和iSCSI设备服务器同为一台服务器.由于iSCSI软件需要,目前微软只开发了基于Windows ...

  6. Hibernate_day01讲义_使用Hibernate完成对CRM系统中客户管理的DAO中的CRUD的操作

  7. 扩展方法(DateTableToList)

    public static IList<T> ToList<T>(this DataTable dt) where T : class,new() { var prlist = ...

  8. Java的多线程

    Java使用Thread代表线程,所有的线程对象都必须是Thread类或其子类的实例.每个线程的作用就是执行一段程序流(完成一定的任务). Java使用线程执行体来代表这段程序流. 1. 继承Thre ...

  9. Matlab练习——寻找完全数

    clc; clear; wq = []; : sum = ; k = ; : i / sum = sum + j; end end == i wq=[wq i]; end end disp(['2至1 ...

  10. 【Linux基础】Linux基础命令行学习笔记

    绝对路径:cd /home/python相对路径:cd Downloads . 表示:当前那路径..表示:当前路径的上一层../.. 表示:当前路径的上二层 没有...或者以上的 ls: ls 查看当 ...