Не удается установить продукт на основе Eclipse RCP с целевой платформой 2019-03 с использованием директора p2 из-за отсутствия требования - PullRequest
1 голос
/ 19 июня 2019

Я нахожусь в процессе обновления нашего продукта сбора данных на основе Eclipse RCP для использования целевой платформы 2019-03, но после успешной сборки продукт не удается установить с org.eclipse.equinox.p2.director со следующим сообщением:

Installation failed. Cannot complete the install because one or more required items could not be found. Software being installed: Data Acquisition Server 9.14.0 (uk.ac.diamond.daq.server.product 9.14.0) Missing requirement: Eclipse Application Services 2.1.400.v20181215-2145 (org.eclipse.e4.core.services 2.1.400.v20181215-2145) requires 'osgi.extender; osgi.component [1.2.0,2.0.0)' but it could not be found Cannot satisfy dependency: From: Eclipse 4 Rich Client Platform 1.6.400.v20190305-0602 (org.eclipse.e4.rcp.feature.group 1.6.400.v20190305-0602) To: org.eclipse.equinox.p2.iu; org.eclipse.e4.core.services [2.1.400.v20181215-2145,2.1.400.v20181215-2145] Cannot satisfy dependency: From: Eclipse Platform 4.11.0.v20190307-0500 (org.eclipse.platform.feature.group 4.11.0.v20190307-0500) To: org.eclipse.equinox.p2.iu; org.eclipse.rcp.feature.group [4.11.0.v20190307-0500,4.11.0.v20190307-0500] Cannot satisfy dependency: From: Eclipse RCP 4.11.0.v20190307-0500 (org.eclipse.rcp.feature.group 4.11.0.v20190307-0500) To: org.eclipse.equinox.p2.iu; org.eclipse.e4.rcp.feature.group [1.6.400.v20190305-0602,1.6.400.v20190305-0602] Cannot satisfy dependency: From: Analysis Server Components Feature 1.0.0.v20190614-0955 (uk.ac.diamond.daq.analysis.server.feature.feature.group 1.0.0.v20190614-0955) To: org.eclipse.equinox.p2.iu; org.eclipse.platform.feature.group [4.11.0.v20190307-0500,4.11.0.v20190307-0500] Cannot satisfy dependency: From: Main Data Acquisition Server Feature 9.14.0.v20190614-0955 (uk.ac.diamond.daq.server.feature.feature.group 9.14.0.v20190614-0955) To: org.eclipse.equinox.p2.iu; uk.ac.diamond.daq.analysis.server.feature.feature.group [1.0.0.v20190614-0955,1.0.0.v20190614-0955] Cannot satisfy dependency: From: Data Acquisition Server 9.14.0 (uk.ac.diamond.daq.server.product 9.14.0) To: org.eclipse.equinox.p2.iu; uk.ac.diamond.daq.server.feature.feature.group [9.14.0.v20190614-0955,9.14.0.v20190614-0955]

Это указывает на то, что расширение osgi.component, требуемое для плагина e4.core.services, не может быть найдено.Посмотрев в Интернете, я обнаружил, что это требование должно быть предоставлено плагином org.apache.felix.scr, который присутствует на моей целевой платформе и согласно его файлу манифеста предоставляет требование в версии 1.4.0, которая находится в требуемом диапазоне.указано в ошибке (1.2.0 - 2.0.0).Я также подтвердил, что этот плагин присутствует в папке хранилища, указанной в команде, которая запускает org.eclipse.equinox.p2.director, а именно:

./eclipse -application org.eclipse.equinox.p2.director -repository file:/tmp/uk.ac.diamond.daq.server.site_20190618_144254.420236/output/uk.ac.diamond.daq.server.site_1.0.0-eclipse.feature/site.p2/ -installIU uk.ac.diamond.daq.server.product -destination /scratch/tptest2/servers/server_20190618-1446_linux64 -profile GDA-server -profileProperties org.eclipse.update.install.features=true -p2.os linux -p2.ws gtk -p2.arch x86_64 -roaming

Можеткто-нибудь посоветует, что тут не так?Учитывая, что плагины org.eclipse.e4.core.services и org.apache.felix.scr, являющиеся двумя сторонами этого требования, присутствуют и предоставляются как часть целевой платформы 2019-03, я был удивлен, когда это произошло,Есть ли какая-то другая зависимость, о которой я не знаю, которая могла вызывать сбой разрешения, или есть какой-то компонент, которого больше нет в этом TP, который я должен учитывать.Наш предыдущий (рабочий) TP - это версия Oxygen3, в которой версия felix предоставляет V1.3 osgi.component.

Я также должен сказать, что когда я генерирую в Eclipse средство запуска из того же определения продукта,процесс выполнен успешно, и приложение работает правильно.

# ОБНОВЛЕНИЕ

Я опробовал банку @ PeterKirschner, но она не устранила проблему, однако она сделала этоукажите мне, в каком направлении задействован бит системы p2, т.е. content.xml / jar.Я посмотрел на преобразованную версию, и она не внесла каких-либо изменений в модуль felix.scr, но было очевидно, что там нет тегов обеспечивающего osgi, extender и osgi.component, но существует множество тегов requireзапрашивая это.Я проверил в манифесте версию felix scr в TP и в ней есть запись Provides-Capabiliy, ссылающаяся на расширитель в приемлемой версии, поэтому я был немного озадачен, почему он, кажется, был проигнорирован.Вот соответствующий бит манифеста:

Provide-Capability: osgi.extender;osgi.extender="osgi.component";uses:
 ="org.osgi.service.component";version:Version="1.4",osgi.service;obje
 ctClass:List<String>="org.osgi.service.component.runtime.ServiceCompo
 nentRuntime";uses:="org.osgi.service.component.runtime"
Originally-Created-By: Apache Maven Bundle Plugin
Export-Package: org.apache.felix.scr.component;version="1.1.0";uses:="
 org.osgi.service.component",org.apache.felix.scr.info;version="1.0.0"
Bundle-Name: %bundleName

Итак, чтобы увидеть, что произойдет, я попытался добавить соответствующий тег Обеспечения к блоку felix.scr и повторно запустил p2.director, что привело к применениюбыть успешно установленным!Я проверил его, и он, кажется, работает нормально, как только я выполнил обычные шаги автоматической установки из нашего процесса.

Таким образом, проблема заключается не в наличии тегов, связанных с кислородом3, а в том, что объявленная возможность пакета не попадает в файл context.xml.@PeterKirschner у вас есть идеи, почему это может быть?Ох, и еще раз спасибо за вашу помощь

...