gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 06:23:55 24 4
gpt4 key购买 nike

我开发了自己的 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com