我开发了自己的eclipse插件,可以创建一个新的自定义向导。在向导结束时,一旦完成所有任务,我想启动"导入maven项目"向导。
例如,对于正常项目,我可以做类似的事情
IWizard wizard = new ExternalProjectImportWizard(page1.getTxtPathLocation().getText());
WizardDialog dialog = new WizardDialog(getShell(), wizard);
dialog.open();
maven等效导入向导的类名是什么?
非常感谢。
答案 0 :(得分:1)
该课程 MavenImportWizard
:
org.eclipse.m2e.core.ui.internal.wizards.MavenImportWizard
并且是 m2e 插件的一部分。
Google grepcode import existing maven project
引导您前往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.
}
另见: