Как включить обновление программного обеспечения в продукте Eclipse?

В моем проекте Eclipse я определил простой подключаемый модуль (пакет), функцию, включающую в себя подключаемый модуль, и продукт, включающий эту функцию.

Когда я экспортирую продукт (через «мастер экспорта продукта Eclipse» редактора продукта), он создает продукт. Я могу запустить продукт, все работает нормально (плагин есть и делает то, что должен делать).

Единственная проблема заключается в том, что пользователь продукта не может установить дополнительные функции Eclipse с помощью меню «Обновление программного обеспечения» (Справка -> Обновления программного обеспечения). Подменю «Обновления программного обеспечения» («Найти и установить…» и «Управление конфигурацией...») неактивны.

Какие подключаемые модули и/или функции мы должны добавить в продукт, чтобы продукт мог принимать дополнительные функции с помощью меню «Обновления программного обеспечения»?

Я пытался добавить кучу плагинов org.eclipse.equinox.p2.*, но все равно не работает.

  <plugin id="org.eclipse.equinox.p2.artifact.repository"/>
  <plugin id="org.eclipse.equinox.p2.console"/>
  <plugin id="org.eclipse.equinox.p2.core"/>
  <plugin id="org.eclipse.equinox.p2.director"/>
  <plugin id="org.eclipse.equinox.p2.director.app"/>
  <plugin id="org.eclipse.equinox.p2.directorywatcher"/>
  <plugin id="org.eclipse.equinox.p2.discovery"/>
  <plugin id="org.eclipse.equinox.p2.discovery.compatibility"/>
  <plugin id="org.eclipse.equinox.p2.engine"/>
  <plugin id="org.eclipse.equinox.p2.extensionlocation"/>
  <plugin id="org.eclipse.equinox.p2.garbagecollector"/>
  <plugin id="org.eclipse.equinox.p2.jarprocessor"/>
  <plugin id="org.eclipse.equinox.p2.metadata"/>
  <plugin id="org.eclipse.equinox.p2.metadata.repository"/>
  <plugin id="org.eclipse.equinox.p2.operations"/>
  <plugin id="org.eclipse.equinox.p2.publisher"/>
  <plugin id="org.eclipse.equinox.p2.publisher.eclipse"/>
  <plugin id="org.eclipse.equinox.p2.ql"/>
  <plugin id="org.eclipse.equinox.p2.reconciler.dropins"/>
  <plugin id="org.eclipse.equinox.p2.repository"/>
  <plugin id="org.eclipse.equinox.p2.repository.tools"/>
  <plugin id="org.eclipse.equinox.p2.touchpoint.eclipse"/>
  <plugin id="org.eclipse.equinox.p2.touchpoint.natives"/>
  <plugin id="org.eclipse.equinox.p2.transport.ecf"/>
  <plugin id="org.eclipse.equinox.p2.ui"/>
  <plugin id="org.eclipse.equinox.p2.ui.discovery"/>
  <plugin id="org.eclipse.equinox.p2.ui.importexport"/>
  <plugin id="org.eclipse.equinox.p2.updatechecker"/>
  <plugin id="org.eclipse.equinox.p2.updatesite"/>

Кто-нибудь точно знает, что нужно сделать (если возможно, на уровне определения продукта), чтобы меню «Обновления программного обеспечения» заработало?


person Loic O    schedule 13.09.2012    source источник


Ответы (3)


Пункт меню «Установить новое программное обеспечение» создан подключаемым модулем org.eclipse.equinox.p2.ui.sdk. Вы должны включить его, чтобы показать этот пункт меню в вашем RCP.

Если ваш RCP основан на функциях, я думаю, вам следует включать только функции, связанные с p2, чтобы упростить процесс.

person Kane    schedule 17.09.2012
comment
Добавление org.eclipse.equinox.p2.ui.sdk привело к добавлению пункта меню Установить новое программное обеспечение в моем продукте Eclipse при его тестировании. Хотя пункт меню Установить новое программное обеспечение завершился ошибкой с сообщением об ошибке Не удалось найти работающий экземпляр профиля. Свойства eclipse.p2.data.area и eclipse.p2.profile могут быть установлены неправильно в файле config.ini этого приложения. Чтобы исправить это, мне пришлось добавить пакет org.eclipse.equinox.ds. - person Loic O; 18.09.2012
comment
@LoicO Можете ли вы сказать, где я должен добавить эти строки «плагина»? какой файл? Спасибо - person CuriousCoder; 20.04.2015

Я не знаю полного списка необходимых пакетов p2, но вы можете легко создать его следующим образом: используйте новый мастер для создания проекта приложения e4 > e4. При этом создается файл продукта, содержащий все пакеты, необходимые для обновляемого продукта p2.

Если у вас есть продукт, основанный на функциях, функции org.eclipse.rcp и org.eclipse.e4.rcp также должны дать вам обновляемый продукт.

person oberlies    schedule 17.09.2012
comment
Я использую индиго, и я не вижу e4. Кроме того, мой продукт — это не RCP-приложение, а просто продукт Eclipse (я думаю, я мог бы сказать, что это фирменный Eclipse). Выяснилось, что 2 отсутствующих комплекта: org.eclipse.equinox.p2.ui.sdk и org.eclipse.equinox.ds. Спасибо. - person Loic O; 18.09.2012

Я также столкнулся с той же проблемой и решил следующие шаги:

В файле конфигурации продукта

.product file --> In Configuration Tab

Specify custom start levels for the following plug-ins,
    org.eclipse.equinox.ds start level 2, auto start true 
    org.eclipse.equinox.simpleconfigurator start level 1, auto start true
    org.eclipse.equinox.common start level 2, auto start true
    org.eclipse.core.runtime start level 4, auto start true
person Vineet Pratap    schedule 20.09.2013