P2 Обновление без головы не работает
-
18-09-2019 - |
Вопрос
Я принял проект org.eclipse.equinox.p2.examples.rcp.prestartupdate и адаптировал его для использования в моем приложении RCP. Затем я настраиваю репозиторий обновления, который обновляется как часть моей ночной сборки.
Когда я открываю свое приложение, он проходит через движения, как оно обновляется - он находит сайт обновления, генерирует удаление и правильно устанавливает операнд для каждого пакета и говорит, что он закончен без ошибок. Проблема заключается в том, что плагины никогда не устанавливаются в папке плагинов, даже если профиль обновляется (последующее прогон состояний, обновлений нет). В следующий раз, когда моя сборка запускает ее правильно, идентифицируют обновления, но то же самое происходит снова.
Я потратил дни отладки, и единственное, что смотрится вне обычного (не то, чтобы я полностью понимаю, что происходит), - это то, что во время окончательной фазы настройки ни один из объектов TouchPointData не имеет каких -либо инструкций, поэтому не похоже на настройку делать то, что должно.
Я действительно понятия не имею, где посмотреть дальше, и хотел бы посмотреть, есть ли у кого -нибудь еще какие -либо идеи.
Обновлять:
Я наконец понял, что происходит.
Проблема началась, когда я создал свой продукт без создания хранилища метаданных. Строившись через Eclipse, я не проверял «генерировать хранилище метаданных» в мастерах экспорта продуктов, потому что мне не нужен был репозиторий P2, только продукт. Проблема заключается в том, что без проверки этой кнопки продукт не устанавливает, поскольку P2 включает в себя побочные эффекты, такие как не генерирование профиля, среди прочего.
Я попытался компенсировать это, вручную создав профиль в коде, который я с тех пор узнал, - это действительно плохая идея. Мои первоначальные проблемы были созданы, потому что мой профиль не был настроен правильно.
После того, как я начал экспортировать продукт с «генерировать репозиторий метаданных», проверил обновление, начавшую правильную установку новых плагинов.
Проблема, которую я имею сейчас, заключается в том, что, хотя плагины устанавливаются правильно, исполняемый файл забит, и я больше не могу запустить свое приложение. Я строю свой сайт обновления через Гудзон и двоичную папку, которая присутствует, когда я использую мастер продукта Export Export Export. Я предполагаю, что сейчас это то, что идет не так.
Любые идеи, почему двоичные файлы не будут строить в моем безголовом сборке КПЕ?
Понял это также. Я предположил, что все, что мне нужно, это отдельные плагины запуска для платформ, на которых я хотел строить. Поскольку я пытался понять процесс, я копировал плагины один за другим на сервер сборки. Оказывается, включает в себя двойные двойной платформы в сборку, необходимая для получения функции org.eclipse.equinox.executable из пакета Delta. Как только я добавил это в сборку, двоичные файлы начали появляться в выводе. С двоичными файлами механизм обновления работает точно так же, как и предполагалось.
Решение
Я предположил, что все, что мне нужно, это отдельные плагины запуска для платформ, на которых я хотел строить. Поскольку я пытался понять процесс, я копировал плагины один за другим на сервер сборки. Оказывается, включает в себя двойные двойной платформы в сборку, необходимая для получения функции org.eclipse.equinox.executable из пакета Delta. Как только я добавил это в сборку, двоичные файлы начали появляться в выводе. С двоичными файлами механизм обновления работает точно так же, как и предполагалось.