Eclipse: Как обеспечить приоритет jar в плагине над другими версиями в других местах? - PullRequest
3 голосов
/ 20 января 2009

Я разрабатываю плагин eclipse, который содержит определенную версию Lucene. Мне нужно создать поисковый индекс и развернуть его так, чтобы он мог быть прочитан другим приложением, использующим ту же версию Lucene.

Я недавно обновил eclipse до 3.4, и поисковый индекс теперь не читается 2-м приложением. Я вижу, что eclipse 3.4 содержит более новую версию Lucene, и я предполагаю, что эта версия используется при создании индекса.

Как я могу точно определить, какая версия Lucene используется во время создания индекса? Мой путь к классу плагина начинается с моей версии Lucene, поэтому я ожидал, что моя версия должна получить приоритет.

ТИА

Ответы [ 3 ]

3 голосов
/ 20 января 2009

Возможно, вы захотите попробовать ClassPath Checker и ClassPath Helper .

Возможно, вы сможете точно определить, какие jar-файлы используются в вашей среде разработки, чтобы сравнить их с jar-файлами, присутствующими в вашей среде развертывания, где Люс генерирует индекс.

Конфликты в банке ClasPath Checker:
classpath checker

Помощник Classpath заблокирован (скрыт) Вид классов:
classpath helper

0 голосов
/ 27 января 2009

Поскольку вы разрабатываете плагин Eclipse, вам стоит взглянуть на OSGi. Плагины Eclipse являются экземплярами комплектов OSGi, и OSGi имеет сильную модель для обработки зависимостей и управления версиями между комплектами.

Я не знаю ваш конкретный код, но если бы я планировал использовать Lucene в моем плагине, я бы использовал функциональность OSGi 'Import-Package' или 'Require-Bundle' для выражения зависимости; Я бы не включил JAR Lucene в свой плагин. Если бы каждый плагин включал свой собственный JAR-файл Lucene, вы бы тратили пространство, но, что более важно, в итоге получали несовместимые версии (как у вас).

Сайт OSGI - не лучшее место для начала вашего путешествия по OSGi (это хорошо для спецификаций OSGi и блога Питера Криенса). Лучше начать с чего-то вроде онлайн-книги Нила Бартлетта .

0 голосов
/ 22 января 2009

Кажется, сейчас работает. Для тех из вас, кто заинтересован, это то, что я должен был сделать:

  • Удалил банку Lucene 1.4.3 из моего плагина
  • Скопирован старый плагин Lucene из более старой версии eclipse в версию 3.4.
  • Удалил все зависимости в мастере plugin.xml. Теперь все плагины Lucene видны.
  • Выбрана версия 1.4.xx и изменены свойства, чтобы установить максимальную версию до 1.5
  • Добавлены другие зависимости плагина
  • Изменен путь сборки: удален старый jar, добавлена ​​зависимость от плагина Lucene 1.4.3
  • Пересчитанная конфигурация прогона. Плагин Lucene 1.4.3 не был добавлен автоматически, поэтому добавил его вручную.
  • Теперь, когда создается индекс, загружается версия 1.4.3.

Надеюсь, это кому-нибудь пригодится.

...