java - 如何从 Eclipse 插件中启动 "import maven project"?

标签 java plugins eclipse-plugin

我开发了自己的 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 找到该内容

  1. Google grepcode 导入现有 Maven 项目
    带您到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>
    
<小时/>

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

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

另请参阅:

关于java - 如何从 Eclipse 插件中启动 "import maven project"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27063210/

相关文章:

java - 根据要求具有多个键值的 Arrays.binarySearch

javascript - 如何将自定义插件添加到 KeystoneJS 管理 UI 中?

c# - 为字段设置值

java - 如何为 JAVA Web 应用程序构建 Docker 容器

java - 看似随机的 SAX 输出错误

android - 是否可以在 NativeScript 中使用 Cordova 插件?

java - Eclipse Juno 的 Websphere 6.1 插件

java - 如何扩展 Eclipse 框架?

java - eclipse 中 Ctrl-f6 的对话框名称

java - 面部表情识别