Как я могу обновить данный пакет Eclipse программно?

#eclipse #eclipse-plugin #p2

#eclipse #eclipse-плагин #p2

Вопрос:

Я сталкиваюсь с некоторыми проблемами при попытке программного обновления определенных плагинов Eclipse.

Я загрузил минимальный набор проектов, который необходим для воспроизведения проблемы на github. И я подробно описал проблему и шаги по ее воспроизведению в выпуске репозитория github.

Ответ №1:

Использование UpdateOperation — это самый простой способ обновить указанные пакеты.

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

 IProfile profile = ...;
UpdateOpertation updateOperation = new UpdateOperation(session, profile.query(QueryUtil.ALL_UNITS, null).toSet());
  

Но не рекомендуется явно обновлять все IU. Лучший способ — обновить только корневой IU (всегда является IU продукта или главной функцией).

 IProfile profile = ...;
UpdateOpertation updateOperation = new UpdateOperation(session, profile.query(QueryUtil.createIUQuery("theidofmyproductiu"), null).toSet());
  

Комментарии:

1. Updater Класс уже использует UpdateOperation . Пожалуйста, смотрите < github.com/reprogrammer/BundleUpdater/blob/master /… >.

2. @reprogrammer, вы не понимаете аргумент UpdateOperation. Коллекция IU — это набор установленных IU, подлежащих обновлению. Смотрите обновленный ответ.

3. Более того, если вы устанавливаете пакет с использованием функции (становится корневым IU), единственный способ найти обновление — это обновить обе функции. p2 не будет принимать обновление пакета, пока функция установлена.