OSGi не может разрешать пакеты - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь перенести старый проект, основанный на PDE, на bndtools, а также с затмения Kepler на новое затмение Photon.При этом я столкнулся с некоторыми проблемами, связанными с используемыми библиотеками.

В старом проекте многие библиотеки были напрямую интегрированы в проект в качестве jar-файлов, но теперь, что касается bnd, я разделил эти jar-файлы на их собственные пакеты.Эта часть работала нормально, и я смог это сделать без каких-либо явных ошибок в eclipse.
Поэтому я хотел создать файл bndrun и протестировать пакеты, но это не сработало, поскольку некоторые из jar-файлов имеют неудовлетворенные зависимости..

Странно то, что это работало в старом затмении Kepler.

Я получил эту ошибку для некоторых библиотек, которые я использовал, ниже приведен пример пакета для этого jar CoDec-build17-jdk13.jar

Баночка находится рядом с другими банками в папке банка:

enter image description here

Соответствующий дескриптор пакета находится в том же проекте:

enter image description here

Содержимое этого дескриптора выглядит следующим образом:

Bundle-Version: 1.0.0
Bundle-Name: com.framework.libraries.CoDec
Bundle-Description: This is a wrapper for the CoDec dependency
Bundle-Category: external
Export-Package: *

Файл bndrun:

-runfw: org.eclipse.osgi;version='[3.13.100.v20180827-1536,3.13.100.v20180827-1536]'
-runee: JavaSE-1.8
-runprovidedcapabilities: ${native_capability}

-resolve.effective: active

-runproperties: \
    osgi.console=,\
    osgi.console.enable.builtin=false

-runrequires: \
    osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.shell)',\
    osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)',\
    bnd.identity;id='com.framework.libraries.CoDec'
-resolve: auto
-runbundles: \
    org.apache.felix.gogo.command;version='[1.0.2,1.0.3)',\
    org.apache.felix.gogo.runtime;version='[1.0.10,1.0.11)',\
    org.apache.felix.gogo.shell;version='[1.0.0,1.0.1)',\

Результат при попытке привязать этот плагин к файлу bndrun следующий:

Resolution failed. Capabilities satisfying the following requirements could not be found:
[<<INITIAL>>]
  ⇒ osgi.identity: (osgi.identity=com.framework.libraries.CoDec)
      ⇒ [com.framework.libraries.CoDec version=1.0.0]
          ⇒ osgi.ee: (&(osgi.ee=JavaSE)(version=1.1))
[com.framework.libraries.eclipse version=1.0.0]
  ⇒ osgi.wiring.package: (&(osgi.wiring.package=com.ibm.icu.text))
[osgi.cmpn version=7.0.0.201802012110]
  ⇒ osgi.unresolvable: (&(must.not.resolve=*)(!(must.not.resolve=*)))
...