为什么 rcp-Plugin-product 没有以例外的方式启动,为什么在启动后 属性 'preferenceCustomization' 消失了?

Why does the rcp-Plugin-product does not start in the excepted way and why does after launching the property 'preferenceCustomization' disappear?

我创建了我的 RCP 插件项目的产品。在我的 RCP-Plugin-project 中,我为我的插件实现了一个自己的视角。 运行 我的插件是 application,一切正常,我可以看到我的观点。

为了将我的视角设为默认,我在产品的 plugin.xml 中添加了 'property' preferenceCustomization。相关plugin_customization.ini的代码如下:

org.eclipse.ui/SHOW_PROGRESS_ON_STARTUP = false
org.eclipse.ui/defaultPerspectiveId=de.cau.cs.bdd.perspective

申请的plugin.xml

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
   <extension
         point="org.eclipse.ui.perspectives">
      <perspective
        class="bdd.klighd.Perspective"
        fixed="true"
        id="de.cau.cs.bdd.perspective"
        name="BDD Perspective">
      </perspective>
   </extension>
   <extension
         point="de.cau.cs.kieler.klighd.diagramSyntheses">
       <diagramSynthesis
         class="de.cau.cs.kieler.klighd.syntheses.GuiceBasedSynthesisFactory:bdd.klighd.BDDDiagramSynthesis"
         id="bdd.klighd.BDDDiagramSynthesis">
       </diagramSynthesis>
   </extension>
   <extension
     point="de.cau.cs.kieler.klighd.ui.view.controller">
      <controller
        class="bdd.klighd.BDDEditorViewController">
      </controller>
   </extension>
   <extension
         point="org.eclipse.ui.editors">
      <editor
        class="bdd.klighd.BDDEditor"
        default="true"
        id="bdd.klighd.BDDEditor"
        name="BDDEditor">
      </editor>
   </extension>
   <extension
     point="org.eclipse.ui.commands">
      <command
        defaultHandler="bdd.klighd.CallBDDEditor"
        id="bdd.klighd.openBDDEditor"
        name="Open BDDEditor">
      </command>
   </extension>
   <extension
     point="de.cau.cs.kieler.klighd.ui.view.editor">
      <editor
        controllerID="bddcontroller"
        editorID="bdd.klighd.BDDEditor">
      </editor>
   </extension>
   <extension
     point="org.eclipse.ui.elementFactories">
      <factory
        class="bdd.klighd.ElementFactory"
        id="bdd.klighd.factory">
      </factory>
   </extension>
   <extension
    point="org.eclipse.ui.perspectiveExtensions">
    <perspectiveExtension
 targetID="de.cau.cs.bdd.perspective">
     <hiddenMenuItem id="org.eclipse.ui.run"></hiddenMenuItem>
     <hiddenMenuItem id="navigate"></hiddenMenuItem>
     <hiddenMenuItem id="file"></hiddenMenuItem>
     <hiddenMenuItem id="project"></hiddenMenuItem>
     <hiddenMenuItem id="window"></hiddenMenuItem>
     <hiddenMenuItem id="help"></hiddenMenuItem>
     <hiddenMenuItem id="edit"></hiddenMenuItem>
      <hiddenMenuItem id=" org.eclipse.search.menu"></hiddenMenuItem>
         </perspectiveExtension>
 </extension>
</plugin>

产品plugin.xml

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
    <plugin>
   <extension
     id="product"
     point="org.eclipse.core.runtime.products">
      <product
        application="org.eclipse.ui.ide.workbench"
        name="BDDProduct">
         <property
           name="appName"
           value="BDDProduct">
         </property>
         <property
           name="rendererFactoryUri"
           value="bundleclass://swt.renderer/swt.renderer.RendererFactory">
         </property>
         <property
           name="preferenceCustomization"
           value="plugin_customization.ini">
         </property>
      </product>
   </extension>
 </plugin>

奇怪的是,启动我的产品时,我得到一个空的 eclipse-window 并且 属性 preferenceCustomization 消失了。

有人知道为什么会这样吗?以及如何修复它?

RCP-Plugin 没有以异常方式启动,因为在自动启动时遗漏了一些插件并且透视中的异常-class 没有被捕获。解决方案是将 org.eclipse.ui.ide.applicationorg.eclipse.core.runtimeorg.eclipse.equinox.commonorg.eclipse.equinox.dsorg.eclipse.equinox.eventorg.eclipse.equinox.simpleconfigurator 添加到 Start Levels Configuration - 产品的选项卡并在透视图中捕获异常 -class.

同步产品已启动,属性 消失了。 (我仍然不知道为什么!)在不同步的情况下导出产品是有帮助的。

要在同步产品时保留 preferenceCustomization 属性,请将此添加到 .product 文件的末尾:

   <preferencesInfo>
      <targetfile overwrite="false" path="/my-project/plugin_customization.ini"/>
   </preferencesInfo>

   <cssInfo>
   </cssInfo>

我在研究产品视图中 Customization 选项卡的用途时发现了这一点。

(在 Eclipse Neon.2 - 4.6.2 上测试)