Программно создать проект Eclipse - PullRequest
16 голосов
/ 31 октября 2008

Я использую 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 сценарием или программой командной строки. Причина в том, что рассматриваемое приложение на самом деле является очень большим J2EE / weblogic приложением, которое мне нравится разбивать на большую (почти 20) коллекцию подпроектов. Сложные вопросы, мы используем clearcase для SCM и создаем новую ветвь для каждого выпуска. Это означает, что мне нужно заново создавать эти проекты для каждого вида разработки (ветви), который я создаю. Это происходит достаточно часто для автоматизации.

Ответы [ 2 ]

18 голосов
/ 31 октября 2008

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

Базовый код для создания проекта:

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

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

2 голосов
/ 31 октября 2008

Использование AntEclipse

Может создавать проекты затмения из муравья.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...