一直以爲 Equinox 的 P2 是個神祕的東西,經常使得 Eclipse 或 Equinox 表現出一些奇怪的行爲,因而找來官方文檔讀一讀,試圖更好地理解與應用 Equinox 。eclipse
官方文檔不少,只能挑其中比較關注的部分來閱讀,邊看邊記下吧。ui
一、 Getting Start ---原文:http://wiki.eclipse.org/Equinox/p2/Getting_Startedspa
P2 全稱是 provisioning platform ,用於替代 Eclipse 3.4 及之前版本中的 Update Manager 功能,用於管理 Eclipse 插件的安裝、搜索升級等。插件
P2 的UI替換了原來的 Update Manager 功能的菜單 Help > Software Updates,包含了安裝、升級站點管理等功能。debug
Eclipse 中 P2 相關的目錄和文件有:日誌
eclipse/ configuration/ config.ini org.eclipse.equinox.simpleconfigurator/ bundles.info dropins/ features/ p2/ plugins/ eclipse.exe eclipse.ini
bundles.info 列出了當前安裝的所有插件,這些插件在啓動時將被運行。經過P2的界面進行插件的安裝(install)或者卸載將致使此文件的修改。code
dropins 目錄受到 P2 監視,用於手動往目錄放入插件文件的方式安裝插件,這點相似於之前版本(3.4之前)的 plugins 目錄。但與之前不一樣,P2 並不保證放入 dropins 的目錄就必定會被安裝到系統中(注:這點值得注意),若是放入的插件沒法被正確解析,或者與現有的已安裝的插件產生衝突,則插件將不會獲得安裝,且不會輸出任務異常信息到日誌。orm
爲了保持向前兼容,P2 也會檢測安裝放入到 plugins 目錄的插件,但這些手工放入的插件會被特殊對待,這其中的規則是:若是手工安裝的插件,也只能手工卸載(uninstall),而沒法經過 P2 卸載。推薦的方法是:儘可能避免對 plugins 目錄進行手工操做,手工操做應經過 dropins 目錄進行。xml
dropins 支持的目錄結構:blog
eclipse/ dropins/ org.eclipse.core.tools_1.4.0.200710121455.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