如何启动"导入maven项目"从我的eclipse插件中?

时间:2014-11-21 14:07:29

标签: java plugins eclipse-plugin

我开发了自己的eclipse插件,可以创建一个新的自定义向导。在向导结束时,一旦完成所有任务,我想启动"导入maven项目"向导。

例如,对于正常项目,我可以做类似的事情

        IWizard wizard = new ExternalProjectImportWizard(page1.getTxtPathLocation().getText());

        WizardDialog dialog = new WizardDialog(getShell(), wizard);
        dialog.open();

maven等效导入向导的类名是什么?

非常感谢。

1 个答案:

答案 0 :(得分:1)

该课程 MavenImportWizard

org.eclipse.m2e.core.ui.internal.wizards.MavenImportWizard

并且是 m2e 插件的一部分。


如何通过Google / grepcode

查找
  1. Google grepcode import existing maven project
    引导您前往plugin.properties,您会看到以下行:

    m2.wizard.import.description    =   Import Existing Maven Projects
    
  2. 在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>
    

  3. 如何以通用方式实例化导入向导

    正如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. 
    }
    

    另见: