Почему я не могу получить доступ ко всем плагинам в моем целевом определении?
У меня проблема с целевыми определениями в 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 для версии этого плагина?