Как получить плагин с кодом, специфичным для платформы, для развертывания на правильной платформе с использованием репозитория eclipse p2?
У меня есть функция Eclipse, которую я создаю, которая содержит несколько плагинов. Один из плагинов использует оператор пакета импорта для объявления зависимости от другого плагина.
Другой плагин имеет специфичный для платформы код и существует в другой функции, которую я создаю. У меня есть два плагина в этой функции, которые имеют код для конкретной платформы. Один для os=win32 arch=x86, а другой для os=win32 arch=x86_64
Обе функции строятся и используют Tycho, и у них обоих есть репозитории p2, которые успешно доступны.
Итак, я сделал составное хранилище, которое указывает на оба этих хранилища, а затем я использую команду "Установить новое программное обеспечение..." в своем приложении RCP и указываю на составное хранилище, чтобы установить первую упомянутую мной функцию.
Проблема заключается в том, что когда установка завершена, плагин с кодом, специфичным для платформы, не может быть установлен правильно. В частности, плагин для системы x86 обнаруживается на моей 64-битной машине.
2 ответа
В файле feature.xml выберите плагин с кодом, специфичным для платформы, и добавьте фильтр платформы. фильтры доступны с правой стороны (после выбора плагина). Вы можете выбрать фильтры, такие как:
- Операционные системы
- WS
- язык
- Архитектура
Когда ваша функция будет опубликована, p2 сгенерирует соответствующие фильтры.
Я нашел ответ.
Мне нужен был файл p2.inf, расположенный рядом с моим файлом feature.xml в первой функции, о которой я упоминал в этом вопросе.
И в этом файле p2.inf мне был нужен этот текст...
requires.1.namespace=org.eclipse.equinox.p2.iu
requires.1.name=com.myplatform.specfic.bundle.win32.x86
requires.1.filter=(&(osgi.os=win32) (osgi.arch=x86))
requires.1.namespace=org.eclipse.equinox.p2.iu
requires.1.name=com.myplatform.specfic.bundle.win32.x86_64
requires.1.filter=(&(osgi.os=win32) (osgi.arch=x86_64))
Я добавил этот файл в build.properties, чтобы убедиться, что он включен в развернутую функцию
Затем, когда я развернул репозиторий p2 и выполнил установку в своем приложении RCP, правильный плагин был помещен на мою 64-битную машину.
ОБНОВЛЕНИЕ: я был неправ здесь. Это НЕ правильный ответ. Неправильный плагин все еще устанавливается на некоторых машинах.