Почему я не могу получить доступ ко всем плагинам в моем целевом определении?

У меня проблема с целевыми определениями в Eclipse. Я хочу использовать плагин версии 1.0.0, который находится в определении моей целевой платформы, в то время как у меня есть проект плагина в моей рабочей области с версией 1.0.2. Для всех других плагинов в моем целевом определении все работает так, как ожидалось (что я вижу, потому что ошибка помечается, если что-то отсутствует), но это конкретное, Eclipse не предоставляет мои проекты. Только плагин версии 1.0.2. Плагин не установлен как однострочный.

Почему это и как я могу решить эту проблему?


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


Кажется, что на самом деле это не проблема, зависящая от затмения, она терпит неудачу и при построении командной строки через maven/tycho. В частности, моей целевой платформой является Juno Release. Существуют ли плагины, которые, будучи частью функции, не доступны для других пакетов? Я знаю, что плагин есть, но ни tycho, ни Eclipse не хотят сделать его доступным для меня.

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


Хотя, как я уже сказал, существуют обходные пути для проблемы, я все же хотел бы иметь "приятное" решение этой проблемы. Вы можете проверить проект вместе с целевым определением в https://github.com/kutschkem/Jayes

Вам также может потребоваться сначала проверить и построить этот проект: git clone http://git.eclipse.org/gitroot/recommenders/org.eclipse.recommenders.git

После настройки целевой платформы попробуйте создать что-то с Jayes 1.0.0 (который находится на целевой платформе) вместо Jayes 1.0.2 (который находится в вашей рабочей области). Вы также можете попытаться построить с помощью maven, это не сработает.

Известные временные решения:

  • Закройте проект Jayes 1.0.2. Затем eclipse позволяет использовать Jayes 1.0.0
  • Для запуска приложения (OSGi) вы можете выбрать, какие пакеты загружены. Вы можете выбрать версию 1.0.0 вручную там
  • Используя определение продукта, вы можете получить доступ к той же конфигурации времени выполнения, что и для обходного пути 2

Если кто-то найдет обходное решение для maven, я был бы рад узнать об этом.

Ответы

Ответ 1

Возможно, вы установили, что ваш плагин является singleton, поэтому будет только один экземпляр для пакета с определенным идентификатором. Вы можете изменить это, удалив "singleton: = true" в вашем MANIFEST.MF.

Bundle-SymbolicName: org.eclipse.xxx; singleton:=true

Или вы можете удалить плагин версии 1.0.2 из конфигурации запуска при запуске. щелкните run run → run configuration, чтобы открыть конфигурацию прогона dialgo, перейдите на вкладку "плагины", здесь вы можете выбрать, какой из этих плагинов вы хотите использовать.

Ответ 2

Я думаю, вы уже пробовали следующее, но может потребоваться перезагрузка целевой платформы. Кроме того, что указывает ваш файл feature.xml для версии этого плагина?