Как получить плагин с кодом, специфичным для платформы, для развертывания на правильной платформе с использованием репозитория eclipse p2?

У меня есть функция Eclipse, которую я создаю, которая содержит несколько плагинов. Один из плагинов использует оператор пакета импорта для объявления зависимости от другого плагина.

Другой плагин имеет специфичный для платформы код и существует в другой функции, которую я создаю. У меня есть два плагина в этой функции, которые имеют код для конкретной платформы. Один для os=win32 arch=x86, а другой для os=win32 arch=x86_64

Обе функции строятся и используют Tycho, и у них обоих есть репозитории p2, которые успешно доступны.

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

Проблема заключается в том, что когда установка завершена, плагин с кодом, специфичным для платформы, не может быть установлен правильно. В частности, плагин для системы x86 обнаруживается на моей 64-битной машине.

2 ответа

Решение

В файле feature.xml выберите плагин с кодом, специфичным для платформы, и добавьте фильтр платформы. фильтры доступны с правой стороны (после выбора плагина). Вы можете выбрать фильтры, такие как:

  1. Операционные системы
  2. WS
  3. язык
  4. Архитектура

Когда ваша функция будет опубликована, 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-битную машину.

ОБНОВЛЕНИЕ: я был неправ здесь. Это НЕ правильный ответ. Неправильный плагин все еще устанавливается на некоторых машинах.

Другие вопросы по тегам