为什么这个Eclipse RCP插件缺少视图?

时间:2019-01-08 09:49:22

标签: eclipse-plugin eclipse-rcp

我正在尝试Eclipse RCP应用程序处理其插件的方式。在Eclipse IDE中,我创建了一个Eclipse RCP 3.x项目,该项目的视图生成了所有必需的文件,并且工作正常。

假定仅通过删除plugin.xml文件的各个部分,就可以将这个应用程序转换为仅具有空视角的应用程序,我注释掉了处理视图的所有行,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
   <extension
     id="application"
     point="org.eclipse.core.runtime.applications">
       <application>
         <run
           class="pluginwithview.Application">
         </run>
       </application>
    </extension>
    <extension
     point="org.eclipse.ui.perspectives">
       <perspective
        name="Perspective"
        class="pluginwithview.Perspective"
        id="PluginWithView.perspective">
       </perspective>
    </extension>
    <!-- 
       even without these lines 
       there's an Exception thrown saying:
       "Could not create the view: PluginWithView.view
    -->  
    <!-- <extension
          point="org.eclipse.ui.views">
          <view
            name="View"
            inject="true"
            class="pluginwithview.View"
            id="PluginWithView.view">
          </view>
         </extension>
         <extension
           point="org.eclipse.ui.perspectiveExtensions">
           <perspectiveExtension
              targetID="*">
           <view
              standalone="true"
              minimized="false"
              relative="org.eclipse.ui.editorss"
              relationship="left"
              id="PluginWithView.view">
           </view>
         </perspectiveExtension>
      </extension> -->
   <extension
     point="org.eclipse.ui.menus">
     <menuContribution
        locationURI="menu:org.eclipse.ui.main.menu">
     <menu
           label="File">
           <command
              commandId="org.eclipse.ui.file.exit"
              label="Exit">
           </command>
     </menu>
     </menuContribution>
   </extension>
</plugin>

但是现在该应用程序不再显示空视角,而是这样:

Screenshot of RCP app with exception

我该怎么办才能不让应用程序搜索视图?是否有我缺少的配置文件? (我知道没有理由的一些原因,但是现在我主要是对Eclipse RCP应用程序的内部运作感兴趣)

1 个答案:

答案 0 :(得分:1)

观点记得他们所包含的观点。如果您更改透视图定义,则必须进行透视图重置(“窗口>透视图>重置透视图”),以使其读取更新的定义。

对于测试,您还可以在RCP运行配置的“程序参数”部分中指定-clean-clearPersistedState选项,以丢弃所有保存的信息。