Eclipse RCP: как устранить зависимости плагинов и проблемы с classpath - PullRequest
3 голосов
/ 18 июня 2010

Я работаю над проектом RCP на основе затмения.Он работал нормально, но недавно я решил обновить его, чтобы использовать новую версию Eclipse (3.2 -> 3.5).

После небольшого количества проблем он работал на новой платформе.Тогда я что-то сделал.Не знаю что.В результате я получаю ошибку пути к классам, когда один из моих плагинов (A) пытается получить доступ к классу в одном из зависимых плагинов (B) (также одном из моих).

Насколькокак я вижу, плагин A имеет плагин B в своем списке зависимостей, и компилятор не показывает ошибок.Для тестирования я создал новый плагин C с одним классом и получил доступ к классу из плагина A. Это прекрасно работает.

Есть ли у кого-нибудь советы по устранению подобных проблем?Контрольный список настроек для проверки?Я боролся с этим часами и ничего не получалось!Особенно расстраивает, как он работал, пока я что-то не изменил!

Спасибо

Обновление

Я должен также сказать, что проект довольно старый и используетplugin.xml а не манифест.Может ли это быть проблемой?Есть ли способ обновить?

Ответы [ 5 ]

3 голосов
/ 18 июня 2010

Некоторые идеи:

  • Очистить и собрать каждый проект (возможно, после перезапуска Eclipse)
  • Проверить, экспортируются ли необходимые пакеты также
  • Проверьте журнал ошибок, возможно, есть какой-то не загружаемый плагин и т. Д.
  • Проверьте конфигурацию запуска, есть ли там каждый необходимый плагин
  • Если проблема не возникает вСреда выполнения, но в приложении Exported RCP, затем проверьте, компилируете ли вы проект с теми же настройками при экспорте, что и в Eclipse

Надеюсь, что-то в этом поможет

2 голосов
/ 29 апреля 2012

Вы можете попробовать следующее в конфигурации запуска :

  1. На вкладке Main Очистить (рабочее пространство ) в разделе Данные рабочего пространства
  2. В проверке вкладки Конфигурация очистите область конфигурации перед запуском в Область конфигурации

Это помогает мне каждый раз, когда я сталкиваюсь со странными ClassNotFound ошибками.

1 голос
/ 28 июля 2010

Я разработал для RCP довольно давно, но если я не ошибаюсь, начиная с 3.4 или 3.5, вы должны указать в конфигурации плагинов, какие пакеты / классы экспортируются для зависимых плагинов, а какие нет.Это отличается от старого соглашения об использовании «internal» в пакете для маркировки неэкспортированных пакетов.

Поскольку у вас есть plugin.xml из очень старой версии eclipse, это может быть проблемой, поскольку экспортируемые ресурсы изодин плагин к другому не применялся в Eclipse RCP 3.2.

1 голос
/ 19 июня 2010

Если я правильно вас понимаю, у вас нет ошибок компилятора, но при запуске вы получаете класс не найденные исключения? Вы можете попробовать PDE Tools> Update Classpath из контекстного меню проекта, чтобы увидеть, объявили ли вы какие-либо зависимости вне файла MANIFEST.MF, что приведет к компиляции кода, который завершится с ошибкой во время выполнения.

0 голосов
/ 08 марта 2014

Еще одно дополнение, надеюсь, это поможет.Откройте файл plugin.xml, проверьте вкладку «сборка», посмотрите, как настроена «двоичная сборка».Это влияет на то, какие файлы будут скомпилированы и экспортированы.Смотрите бинарную сборку здесь: http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.pde.doc.user%2Fguide%2Ftools%2Feditors%2Fmanifest_editor%2Fbuild.htm

...