Как я могу создать собственный макет проекта на основе другого плагина eclipse? - PullRequest
1 голос
/ 23 февраля 2012

Моя конечная цель - создать плагин eclipse, который настраивает проект PDT, но с некоторыми добавленными сборщиками (и пользовательскими сценариями сборки), а также с определенным макетом папки (и разные папки должны рассматриваться как исходные, а некоторые как обычныепапки).

Я смотрел / следовал учебникам по разработке плагинов Eclipse, и хорошо.Я понял суть создания мастера, который создает файл, но у меня возникли проблемы при попытке выяснить, как создать проект, и, что более важно, сделать этот проект связанным с функцией PDT (PHP Development Tools).

Ответ:

Я сам наткнулся на решение, прежде чем был дан ответ, но оно очень похоже.

Во-первых, WizardNewProjectCreationPage использовалось в качестве первой страницы моего мастера.

Во-вторых, performFinish() Я запустил следующий код:

        IProgressMonitor    m           = new NullProgressMonitor();
        IWorkspaceRoot      root        = ResourcesPlugin.getWorkspace().getRoot();
        IProject            project     = root.getProject(_pageOne.getProjectName());

        if (!project.exists())
        {
            IProjectDescription desc = project.getWorkspace().newProjectDescription(project.getName());
            URI projectLocation = _pageOne.getLocationURI();
            // desc.setLocationURI(projectLocation);

            String[]            natures     = desc.getNatureIds();
            String[]            newNatures  = new String[natures.length + 1];

            System.arraycopy(natures, 0, newNatures, 0, natures.length);
            newNatures[natures.length] = PHPNature.ID;

            desc.setNatureIds(newNatures);
            project.create(desc, m);
            project.open(m);
        }

1 Ответ

1 голос
/ 23 февраля 2012

как создать проект

Взгляните на метод BasicNewProjectResourceWizard.createNewProject().

сделать этот проект связанным сФункция PDT (инструменты разработки PHP)

Вам необходимо добавить «org.eclipse.php.core.PHPNature» в проект (вот что Добавить поддержку PHP ... actionделает).Используйте IProjectDescription.setNatureIds().

...