Получение информации о проекте Eclipse в приложении OSGi - PullRequest
0 голосов
/ 22 февраля 2012

Я работаю над проектом, который проверяет проекты Eclipse Java и получает некоторую информацию об исходных файлах, используя Eclipse AST.Сейчас это плагин Eclipse, но нам нужно сделать его независимым от Eclipse, мы используем только библиотеки AST Eclipse.

Я попытался скопировать необходимые JAR-файлы и запустить проект как обычное приложение Java (неплагин Eclipse, не зависящий от Eclipse), но затем я начал получать некоторые ошибки, потому что, когда я запускаю приложение вне Eclipse, AST не может получить необходимую информацию (данные проекта) из Eclipse и в некоторых случаях возвращает ноль.Например, когда я посещаю вызов метода (MethodInvocationNode class), мне нужно знать, какой это метод класса, но я не могу из-за ошибок AST, которые я объяснил (MethodInvocationNode.resolveMethodBinding() возвращает ноль в этом случае).

Я думаю, что мне нужно получить IProject, в плагине Eclipse я получаю его от IWorkspace (ResourcesPlugin.getWorkspace()), который, я думаю, доступен во всех плагинах Eclipse.

Теперь яПодумайте, смогу ли я сделать из этого приложение для OSGi, возможно, я смогу каким-то образом получить IProject, но я понятия не имею, как мне это сделать.Документация и учебники не сильно помогли.Также высока вероятность того, что я упускаю некоторые фундаментальные моменты о проектах Eclipse и / или приложениях OSGi :).

Короче говоря, как я могу получить IProject данные в приложении OSGi?

1 Ответ

1 голос
/ 22 февраля 2012

Во-первых, каждое приложение Eclipse является OSGi-приложением, поэтому нет никакой разницы в том, что нужно делать в чистой среде OSGi или Eclipse.

Во-вторых, «Рабочая область» - это специфическая конструкция Eclipse, поэтому делать ваше приложение «независимым» от Eclipse не имеет никакого смысла, ведь содержание проекта, особенно проекты Java, зависит от затмения (так что вам также нужно проанализировать .classpath файлы с API из Eclipse, чтобы узнать, какие ресурсы должны быть скомпилированы, анализ .project файлов и т. Д.).

Механизм рабочей области является частью пакета org.eclipse.core.resources. Вы должны включить это в свое приложение OSGi. Как уже упоминалось, вы можете получить доступ ко всем вещам так же, как в среде Eclipse.

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