Я разработал свой собственный плагин eclipse, который создает новый пользовательский мастер. в конце мастера, как только все задачи будут выполнены, я хочу запустить мастер "Импорт maven project".
например, для обычного проекта я могу сделать что-то подобное
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 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>
Как отметил Грег, класс находится во internal
пакете и не должен использоваться напрямую. Вместо этого вы должны использовать API Eclipse для получения дескриптора мастера по его идентификатору, а затем создать экземпляр мастера с помощью дескриптора. Вы найдете идентификатор дескриптора мастера в файле plugin.xml (см. Выше). Это 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.
}
Смотрите также: