我不明白Eclipse Launch Configrations(ILaunchConfiguration
)的迁移是如何工作的。在我的梦中,我很乐意拥有以下内容:
something_1.0/foo
something_2.0/foo
而不是不存在的something_1.0/foo
尽管我写了并连接了ILaunchConfigurationMigrationDelegate
的相应实现,但第3步遗憾地是无效的。似乎代码永远不会被执行。
何时迁移配置?根据代码,有Migrate button
,我找不到。根据文档配置,可能会自动迁移。这是怎么触发的?
谢谢, 卡斯滕
答案 0 :(得分:0)
此implementation of this interface应在扩展点声明。
您可以参考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>