2015-04-26 2 views
0

У меня есть проект XText в Eclipse, с моим встроенным файлом грамматики. С помощью функции doGenerate я генерирую несколько файлов .java. Пока все работает как шарм.XTEND/JAVA автоматическое создание проекта eclipse

Моя проблема заключается в том, что каждый раз, когда я произвожу мои файлы мне нужно сделать следующее:

  1. Скопируйте сгенерированные файлы в моем каталоге Затмения проектов
  2. Создать новый проект Java в Eclipse,
  3. Импорт сгенерированных файлов к проекту

Я бы хотел (а) сделать каждый или все эти шаги автоматическими каждый раз, когда вызывается функция doGenerate, , так есть способ сделать это с помощью кода xtend/java? Я должен упомянуть, что моя грамматика требует, чтобы пользователь указывал каталог проекта + имя, чтобы информация была доступна во время выполнения из функции doGenerate.

Код должен предпочтительно иметь возможность определить, есть ли проект с тем же именем и обновить его содержимое в открытом экземпляре Eclipse во время выполнения, если это возможно.

В противном случае, если это невозможно сделать с помощью xtend/java, это можно сделать с помощью плагина?

+0

Создание проектов Eclipse должно выполняться в плагине. Есть уже несколько вопросов о таких, как [этот] (http://stackoverflow.com/q/251807/2670892) –

ответ

1

Создание новых проектов должно осуществляться через API ресурсов eclipse. Если вы хорошо, с наличием этой зависимости в вашем генераторе кода, вы можете просто добавить зависимость к org.eclipse.core.resources и сделать что-то вроде

ResourcesPlugin.getWorkspace().getRoot().getProject("myProject").create(null) 

Если вы не хотите эту зависимость, потому что вы запустите генератор кода из других сред (например, Maven), вам нужно абстрагировать создание проекта в его собственный класс, ввести его и иметь отдельные реализации для Eclipse и non-Eclipse.

API-интерфейс генератора кода Xtext (IFileSystemAccess) будет использовать API ресурсов Eclipse под капотом, чтобы убедиться, что все уведомления и т. Д. Работают должным образом, и вам не нужно вручную обновлять. Поэтому здесь нет необходимости в различных реализациях, поскольку Xtext позаботится об этом.

+0

Да, ваше решение именно то, что я искал. Проблема по какой-то причине я не могу получить ** import org.eclipse ** для работы, что странно, и я не могу понять, что я делаю неправильно. Полагаю, для этого мне нужен специальный плагин, но я понятия не имею, что это такое. – Glugstar

+0

Я хотел бы попросить дополнительную информацию о той же проблеме. IFileSystemAccess отлично работает, когда речь идет о том, чтобы оставаться в том же проекте, где и находятся генераторы кода. Я также могу создавать простые папки в моей файловой системе (в текущей папке рабочей области) для сгенерированных файлов. Но они не распознаются как новые проекты в моей рабочей области Eclipse. Является ли инфраструктура Xtend действительно способной создавать исполняемые проекты? Я считаю, что для достижения этой цели мне понадобится поддержка процесса сборки, такого как Maven, верно? Также для интеграции библиотек или зависимостей проекта. – DanglingElse

Смежные вопросы