Я использую 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 и создаем новую ветку для каждого выпуска. Это означает, что мне нужно воссоздавать эти проекты для каждого создаваемого мной представления (ветки) разработки. Это случается достаточно часто, чтобы автоматизировать.




Вы сможете добиться этого, написав небольшой плагин Eclipse. Вы даже можете расширить его до «безголового» RCP-приложения и передать необходимые аргументы командной строки.
Базовый код для создания проекта:
IProgressMonitor progressMonitor = new NullProgressMonitor();
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
IProject project = root.getProject("DesiredProjectName");
project.create(progressMonitor);
project.open(progressMonitor);
Просто взгляните на код eclipse для мастера импорта проекта, чтобы лучше понять, куда с ним идти.
Этот ответ был бы еще более полезным, если бы в нем было указано, где можно найти код для мастера импорта проекта. Просто имени содержащего пакета и / или имени реализующего класса может быть достаточно, чтобы найти его в репозиториях eclipse git.
Используйте AntEclipse
Он может создавать проекты eclipse из ant.
Для создания Java-проекта вы можете использовать JavaCore из org.eclipse.jdt.core.JavaCore. В качестве sourceProject вы можете использовать общий элемент проекта, предложенный @James Van Huis.
IJavaProject javaSourceProject = JavaCore.create(sourceProject);
Этот способ создания проекта работает с проектом плагина eclipse. Есть ли способ создать Java-проект из автономного Java-проекта? означает создание проекта из основного класса, просто запустив его. Заранее спасибо.