一直觉得 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. spring boot工程打成JAR包到服务器上运行

    只需在项目的pom.xml中加入下面插件 <build> <plugins> <plugin> <groupId>org.springframework ...

  2. iOS 应用中打开其他应用 (转)

    我们来讨论一下,在iOS开发中,如何实现从app1打开app2. 基本的思路就是,可以为app2定义一个URL,在app1中通过打开这个URL来打开app2,在此过程中,可以传送一些参数.下面来讨论一 ...

  3. 项目管理PMP输入输出ITTO联系记忆

    综述九大领域 项目管理的输入输出非常难记,原因在于理解起来也经不去推敲,故整理一个联想记忆版本,通过联想把输入输出都串起来达到记忆的目的,既然是联想,里面的内容逻辑只是为了好记,并无正确与否,请大家原 ...

  4. SpringMVC由浅入深day02_9RESTful支持

    9 RESTful支持 9.1 什么是RESTful RESTful架构,就是目前最流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用. RESTful( ...

  5. Dubbo -- 系统学习 笔记 -- 示例 -- 负载均衡

    Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 负载均衡 在集群负载均衡时,Dubbo提供了多种均衡策略,缺省为random随机调 ...

  6. web -- 前端访问后台跨区问题解决

    package com.xindatai.ibs.web.filter; import java.io.IOException; import javax.servlet.Filter; import ...

  7. 九度 1557:和谐答案 (LIS 变形)

    题目描述: 在初试即将开始的最后一段日子里,laxtc重点练习了英语阅读的第二部分,他发现了一个有意思的情况.这部分的试题最终的答案总是如下形式的:1.A;2.C;3.D;4.E;5.F.即共有六个空 ...

  8. JS有趣的单线程

    一.JS的执行特点    源于单线程的特性, JS在一段时间内只能执行一部分代码, 那么, 当有多块代码需要执行时, 就需要排队等候了.   二.单线程与异步事件 (1) 什么是异步事件?     异 ...

  9. express不是内部或外部命令,也不是可运行的程序或批处理文件

    如上安装了express以后,仍然报如下错误:express不是内部或外部命令,也不是可运行的程序或批处理文件 原因是版本问题:当前版本是4.0.0,改成3.5.0即可运行. npm install ...

  10. 【Cesium】flyTo

    // 1. Fly to a position with a top-down view viewer.camera.flyTo({ destination : Cesium.Cartesian3.f ...