Проблемы во время разработки плагина Eclipse - PullRequest
2 голосов
/ 02 декабря 2008

Сейчас я пытаюсь создать плагин Eclipse, который зависит от другого jar; поэтому я создал базу плагинов на банке и развернул ее под модулем вставки моего Eclipses. Он хорошо работает, когда я запускаю его из своей рабочей среды через Eclipse. Однако, как только я экспортировал его в банку и развернул в Eclipse, он больше не работает, так как не смог найти зависимую банку. Что случилось и как решить проблему? Кто-нибудь знает это? пожалуйста, спаси меня.

Ответы [ 4 ]

2 голосов
/ 02 декабря 2008

MANIFEST.MF имеет вкладку под названием «Зависимости», в которую все плагины должны помещать текущий плагин, зависит от. Во время выполнения вы должны поместить плагины "зависимостей" в ту же папку, что и папка, которую вы хотите запустить или с которой хотите работать.

Если плагин имеет файлы jar, которые он должен использовать, вы должны поместить файлы jar в запись пути к классу "Runtime", и вы должны добавить jar в запись "Build".

1 голос
/ 02 декабря 2008

Кроме того, plugin.xml, связанный с вашим плагином 'external jar', экспортирует нужные пакеты ?

Вы проверили эту статью , описывая все шаги, необходимые для упаковки банок сторонних производителей в качестве плагинов?

Другие очень важные моменты описаны в статье Пакеты PDE и 3rdParty в приложениях OSGI Enterprise с такими правилами, как:

  • Всегда помещайте зависимые JAR-файлы в отдельные пакеты и описывайте зависимости в своем файле манифеста. Не прячьте эти JAR-файлы в свой пакет.

  • Если возможно, используйте Import-Package для разрешения ваших зависимостей.

  • Экспортируйте только ваши "публичные" пакеты - не внутренние.

  • Используйте Require-Bundle только для разрешения зависимостей внутри собственной «вселенной», а не от общих пакетов.

  • Всегда версия Require-Bundle, Import-Package и Export-Package.
    Require-Bundle всегда имеет зависимость от пакета с определенным именем.
    Import-Package не зависит от имени пакета, поэтому он более гибкий. Конечно, это больше работы, чтобы посмотреть на ваши пакеты и решить, что вам нужно импортировать или экспортировать по сравнению с однострочным с Require-Bundle

  • Если сам пакет содержит пакеты внутри пакета и экспортирует их, никогда не помещайте эти пакеты также в Манифест как импортированные пакеты.

  • Перед развертыванием пакета в качестве подключаемого модуля убедитесь, что использование пакетов пересчитано. Неправильные записи использования пакетов для экспортированных пакетов могут остановить PDE для экспорта вашего подключаемого модуля.

0 голосов
/ 02 декабря 2008

У меня просто была похожая проблема. Я исправил это, используя вид плагина:

  1. Добавить JAR-файл, используя раздел Classpath вкладки Runtime
  2. Используйте мастер организации манифеста на вкладке Обзор, чтобы внести все необходимые изменения манифеста
  3. Используйте Мастер экспорта на вкладке Обзор, чтобы экспортировать готовый плагин.

Примечание. Я использую Eclipse 3.3, поэтому ваш пробег может отличаться.

0 голосов
/ 02 декабря 2008

Рабочее поведение в Eclipse нормальное, поскольку зависимый jar находится в пути к классам проекта.

Вы смотрели на папку плагинов, которую вы развернули? Я подозреваю, что зависимость не содержится в папке плагина.

...