2

我不明白 Eclipse Launch Configrations ( ILaunchConfiguration) 的迁移是如何工作的。在我的梦想中,我很想拥有以下东西:

  1. 我的插件 1.0 版用于创建启动配置引用文件something_1.0/foo
  2. 插件升级到 2.0 版本,这也删除了插件的所有旧启动配置中仍然引用的文件
  3. 旧的启动配置会自动升级,以便something_2.0/foo引用而不是不存在的something_1.0/foo

遗憾的是,第 3 步是行不通的,尽管我编写并连接了ILaunchConfigurationMigrationDelegate. 似乎代码永远不会执行。

什么时候迁移配置?根据代码,有一个Migrate button,我找不到。根据文档配置可能会自动迁移。这是如何触发的?

谢谢,卡斯滕

4

1 回答 1

0

这个接口的这个实现应该在扩展点中声明。

可以参考 JDT 本身的实现org.eclipse.jdt.internal.launching.JavaMigrationDelegate

请注意启动快捷方式将配置类型指定为通过扩展定义的配置类型。

   <extension
     point="org.eclipse.debug.ui.launchShortcuts">
  <shortcut
        class="org.eclipse.jdt.debug.ui.launchConfigurations.JavaApplicationLaunchShortcut"
        description="%JavaLaunchShortcut.description"
        helpContextId="org.eclipse.jdt.debug.ui.shortcut_local_java_application"
        icon="$nl$/icons/full/etool16/java_app.gif"
        id="org.eclipse.jdt.debug.ui.localJavaShortcut"
        label="%JavaApplicationShortcut.label"
        modes="run, debug">
     <contextualLaunch>
       <enablement>
         <with variable="selection">
           <count value="1"/>
            <iterate>
             <and>
              <adapt type="org.eclipse.jdt.core.IJavaElement">
                <test property="org.eclipse.jdt.core.isInJavaProject"/>
              </adapt>
              <or>
                <test property="org.eclipse.jdt.launching.hasMain"/>
                <test property="org.eclipse.jdt.launching.isContainer"/>
                <test property="org.eclipse.jdt.launching.isPackageFragment"/>
                <test property="org.eclipse.jdt.launching.isPackageFragmentRoot"/>
              </or>
             </and>
            </iterate>
           </with>
       </enablement>
     </contextualLaunch>
     <configurationType
           id="org.eclipse.jdt.launching.localJavaApplication">
     </configurationType>
     <description
           description="%RunJavaLaunchShortcut.description"
           mode="run">
     </description>
     <description
           description="%DebugJavaLaunchShortcut.description"
           mode="debug">
     </description>
  </shortcut>
于 2013-01-29T06:23:17.477 回答