Программное создание проекта 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

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
17
0
14 458
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

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

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

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

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

Этот способ создания проекта работает с проектом плагина eclipse. Есть ли способ создать Java-проект из автономного Java-проекта? означает создание проекта из основного класса, просто запустив его. Заранее спасибо.

Abhishek Tiwari 06.08.2016 17:35

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

M_M 18.10.2019 15:21

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

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

Для создания Java-проекта вы можете использовать JavaCore из org.eclipse.jdt.core.JavaCore. В качестве sourceProject вы можете использовать общий элемент проекта, предложенный @James Van Huis.

IJavaProject javaSourceProject = JavaCore.create(sourceProject);

Другие вопросы по теме