Eclipse RCP - Обновление - PullRequest
       27

Eclipse RCP - Обновление

2 голосов
/ 06 марта 2011

При создании семпла я заметил очень странное поведение, из-за которого я несколько застрял.Я объясню проблему в 2 сценариях

Сценарий 1.

  • Создание двух плагинов.
  • Создание двух функций.
  • Создание одногопродукт & включает только одну функцию.
  • Создайте категорию и включите обе функции.
  • Экспортируйте продукт и протестируйте его, используя созданный модуль запуска.Все работает нормально.

Теперь экспортируйте развертываемую функцию и скопируйте сгенерированные файлы на веб-сервер.
Откройте опцию установки нового программного обеспечения и установите вторую функцию, используя URL-адрес.
Функция устанавливаетсяи даже обновляется с каждой сборкой.

Сценарий 2

  • Создание двух плагинов.
  • Создание двух функций.
  • Создание одного продуктаи включить обе функции.(Это отличается от 1-го сценария, где включена только одна функция.)
  • Создайте категорию и включите обе функции.

Экспортируйте продукт и протестируйте его с помощью созданного модуля запуска.Все отлично работает

Теперь экспортируйте развертываемую функцию и скопируйте сгенерированные файлы на веб-сервер.
Откройте опцию установки нового программного обеспечения и обновите приложение, используя URL-адрес.
Средство обновления жалуется, поскольку функция уже установлена, и обновление будетвместо этого.
К сожалению, обновление не работает, и на шаге отображается сообщение об ошибке:

Your original request has been modified.
  "Mail Protection" is already installed, so an update will be performed instead.
  "Core" is already installed, so an update will be performed instead.
Cannot complete the install because of a conflicting dependency.
  Software being installed: Mail Protection 1.0.0.201103061657 (com.example.mail.protection.feature.group 1.0.0.201103061657)
  Software currently installed: RCP Product 1.0.0.201103061656 (com.example.mail.product 1.0.0.201103061656)
  Only one of the following can be installed at once: 
    Mail Protection 1.0.0.201103061656 (com.example.mail.protection.feature.jar 1.0.0.201103061656)
    Mail Protection 1.0.0.201103061657 (com.example.mail.protection.feature.jar 1.0.0.201103061657)
  Cannot satisfy dependency:
    From: RCP Product 1.0.0.201103061656 (com.example.mail.product 1.0.0.201103061656)
    To: com.example.mail.protection.feature.group [1.0.0.201103061656]
  Cannot satisfy dependency:
    From: Mail Protection 1.0.0.201103061656 (com.example.mail.protection.feature.group 1.0.0.201103061656)
    To: com.example.mail.protection.feature.jar [1.0.0.201103061656]
  Cannot satisfy dependency:
    From: Mail Protection 1.0.0.201103061657 (com.example.mail.protection.feature.group 1.0.0.201103061657)
    To: com.example.mail.protection.feature.jar [1.0.0.201103061657]

Это кажется удивительным, поскольку обновление работает, когда я устанавливаю функцию после экспорта продукта.
Но если функция уже включена в продукт, то обновления функции не работают.

Знаете ли вы, почему?

Ответы [ 2 ]

2 голосов
/ 27 февраля 2012

У меня была такая же проблема, но я понял это.Проблема в том, что базовые плагины, которые поставляются вместе с продуктом, не могут быть обновлены, если мы экспортируем их в качестве развертываемых функций или создадим их через сайт обновлений.Единственный способ - повторно экспортировать ваш продукт (из конфигурации продукта) и скопировать необходимые базовые плагины и функции из папки экспорта на веб-сервер.Теперь проверьте наличие обновлений еще раз, вы увидите обновленную базовую функцию и обновленную версию продукта в списке.Вы не можете обновить только базовую функцию, вы должны обновить обе (функция и продукт).Это был выставочный стопор, и теперь он работает для меня.

1 голос
/ 17 мая 2019

У меня была такая же проблема при обновлении моих функций независимо от моего продукта.Решение заключается в том, что вам нужно сделать свою функцию обновляемой, сделав ее «функцией корневого уровня»

 <features>
  <feature id="org.eclipse.e4.rcp"/>
  <feature id="org.eclipse.platform"/>
  <feature id="com.codeandme.tycho.plugin.feature" installMode="root"/>
  <feature id="com.codeandme.tycho.product.feature"/>
  <feature id="org.eclipse.help" installMode="root"/>
  <feature id="org.eclipse.emf.ecore"/>
  <feature id="org.eclipse.equinox.p2.core.feature"/>
  <feature id="org.eclipse.emf.common"/>
  <feature id="org.eclipse.equinox.p2.rcp.feature"/>
  <feature id="org.eclipse.equinox.p2.user.ui"/>
  <feature id="org.eclipse.rcp"/>
  <feature id="org.eclipse.equinox.p2.extras.feature"/>
 </features>

Я нашел это решение с http://codeandme.blogspot.com/2014/06/tycho-11-install-root-level-features.html и с http://www.lorenzobettini.it/2015/03/build-your-own-custom-eclipse/

...