我开发了自己的 eclipse 插件,用于创建新的自定义向导。在向导结束时,一旦完成所有任务,我想启动“导入 Maven 项目”向导。
例如,对于一个普通的项目我可以做类似的事情
IWizard wizard = new ExternalProjectImportWizard(page1.getTxtPathLocation().getText());
WizardDialog dialog = new WizardDialog(getShell(), wizard);
dialog.open();
maven 等效导入向导的类名是什么?
非常感谢。
该类是MavenImportWizard
:
org.eclipse.m2e.core.ui.internal.wizards.MavenImportWizard
并且是m2e插件的一部分。
<小时/>
如何通过 Google/grepcode 找到该内容
Google grepcode 导入现有 Maven 项目
带您到plugin.properties ,您会在其中看到以下行:
m2.wizard.import.description = Import Existing Maven Projects
在同一项目的 grepcode 中,您会看到 plugin.xml包含类名的片段:
<wizard id="org.eclipse.m2e.core.wizards.Maven2ImportWizard"
class="org.eclipse.m2e.core.ui.internal.wizards.MavenImportWizard"
icon="icons/import_m2_project.gif"
category="org.eclipse.m2e"
name="%m2.wizard.import.name">
<description>%m2.wizard.import.description</description>
</wizard>
<小时/>
如何以通用方式实例化导入向导
正如 Greg 指出的,该类位于 internal
包中,不应直接使用。相反,您应该使用 Eclipse API 通过其 id 获取向导描述符,然后使用该描述符实例化向导。您将在plugin.xml 中找到向导描述符id(见上文)。在您的情况下,它是 org.eclipse.m2e.core.wizards.Maven2ImportWizard 。
这里是完成任务的代码片段:
final String MAVEN_IMPORT_WIZARD_ID =
"org.eclipse.m2e.core.wizards.Maven2ImportWizard";
final IWizardDescriptor mavenImportWizardDescriptor =
PlatformUI
.getWorkbench()
.getImportWizardRegistry()
.findWizard(MAVEN_IMPORT_WIZARD_ID);
if (mavenImportWizardDescriptor != null) {
final IWizard mavenImportWizard = mavenImportWizardDescriptor.createWizard();
final WizardDialog mavenImportWizardDialog = new WizardDialog(getShell(), mavenImportWizard);
mavenImportWizardDialog.open();
}
else {
// Wizard not found - e.g. if m2e is not installed.
// Notify user.
}
另请参阅:
我是一名优秀的程序员,十分优秀!