Программно создать проект Eclipse

Я использую eclipse для работы над приложением, которое изначально было создано независимо от eclipse. Таким образом, структура каталога приложений явно не похожа на eclipse.

Я хочу программно сгенерировать проект для приложения. Файлы .project и .classpath достаточно легки, чтобы понять, и я узнал, что проекты хранятся в рабочей области в <workspace>/.metadata/.plugins/org.eclipse.core.resources/.projects

К сожалению, некоторые из файлов здесь (особенно .location) кажутся закодированными в каком-то двоичном формате. На догадку я попытался десериализовать его, используя ObjectInputStream - без кубиков. Таким образом, он не является сериализованным java-объектом.

Мой вопрос: есть ли способ сгенерировать эти файлы автоматически?

Для любопытных ошибка, которую я пытаюсь десериализовать файл .location, следующая:

java.io.StreamCorruptedException: java.io.StreamCorruptedException: invalid stream header: 40B18B81

Обновление:. Моя цель заключается в том, чтобы заменить мастер создания Java Java командой командной строки script или программой. Причина в том, что данное приложение является очень большим приложением J2EE/weblogic, которое я хотел бы разбить на довольно большую (почти 20) коллекцию подпроектов. Усложняя вопросы, мы используем clearcase для SCM и создаем новую ветвь для каждой версии. Это означает, что мне нужно воссоздать эти проекты для каждого вида разработки (ветки), который я создаю. Это достаточно часто для автоматизации.

Ответы

Ответ 1

Вы должны сделать это, написав небольшой плагин Eclipse. Вы даже можете расширить его до того, чтобы быть "безголовым" RCP-приложением, и передать необходимые аргументы командной строки.

Код barebones для создания проекта:

IProgressMonitor progressMonitor = new NullProgressMonitor();
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
IProject project = root.getProject("DesiredProjectName");
project.create(progressMonitor);
project.open(progressMonitor);

Просто взгляните на код затмения для мастера импорта проекта, чтобы дать вам лучшее представление о том, куда идти с ним.

Ответ 2

Используйте AntEclipse

Он может создавать проекты eclipse из ant.