Я пытаюсь перенести старый проект, основанный на PDE, на bndtools, а также с затмения Kepler на новое затмение Photon.При этом я столкнулся с некоторыми проблемами, связанными с используемыми библиотеками.
В старом проекте многие библиотеки были напрямую интегрированы в проект в качестве jar-файлов, но теперь, что касается bnd, я разделил эти jar-файлы на их собственные пакеты.Эта часть работала нормально, и я смог это сделать без каких-либо явных ошибок в eclipse.
Поэтому я хотел создать файл bndrun и протестировать пакеты, но это не сработало, поскольку некоторые из jar-файлов имеют неудовлетворенные зависимости..
Странно то, что это работало в старом затмении Kepler.
Я получил эту ошибку для некоторых библиотек, которые я использовал, ниже приведен пример пакета для этого jar CoDec-build17-jdk13.jar
Баночка находится рядом с другими банками в папке банка:
Соответствующий дескриптор пакета находится в том же проекте:
Содержимое этого дескриптора выглядит следующим образом:
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=*)))