(OSGi) Как мне экспортировать пакет для моего пакета для импорта? - PullRequest
0 голосов
/ 03 апреля 2020

Я пишу с нуля комплект OSGi для умного дома Eclipse, и мне нужно экспортировать определенный пакет. Это необходимо, потому что в данный момент консоль karaf показывает мне эту ошибку:

Unresolved requirement: Import-Package: com.pubnub.api

В файле манифеста, который я вижу, я импортирую тот же пакет, среди других. Я использовал maven для его импорта, следуя официальной документации здесь .

Поддержка OSGi dev говорит мне, что мне нужно " экспортировать пакет API com.pubnub. Чтобы мой пакет импортировал его ", но я не знаю, как это сделать. Кажется, мне следует « найти или создать пакет, который экспортирует API PubNub », но этот ответ меня смущает.

Полагаю, мне нужно было бы где-то добавить строку в манифест, например "export-package et c", но я не знаю, в каком манифесте, или это правильный путь вообще. Я новичок в OSGi Framework.

Я пытался искать в похожих темах (например, это и это ), но я не думаю, что они помогают в моем случае.


Это мой файл манифеста, для ясности:

Import-Package: org.eclipse.smarthome.core.library.types, org.eclipse.smarthome.core.thing, org.eclipse.smarthome.core.thing.binding, org.eclipse.smarthome.core.types, com.google.gson;version="[2.8,3)", com.pubnub.api, com.pubnub.api.builder, com.pubnub.api.callbacks, com.pubnub.api.endpoints.pubsub, com.pubnub.api.models.consumer, com.pubnub.api.models.consumer.pubsub, com.pubnub.api.models.consumer.pubsub.message_actions, com.pubnub.api.models.consumer.pubsub.objects, org.slf4j;version="[1.7,2)"

Это мой пом:

<parent>
   <groupId>org.openhab.addons.bundles</groupId>
   <artifactId>org.openhab.addons.reactor.bundles</artifactId>
   <version>2.5.3-SNAPSHOT</version>
 </parent>

 <artifactId>org.openhab.binding.safehome_se</artifactId>

 <name>openHAB Add-ons :: Bundles :: SafeHome_SE Binding</name>

 <dependencies>

   <dependency>
     <groupId>com.pubnub</groupId>
     <artifactId>pubnub-gson</artifactId>
     <version>4.31.0</version>
     <scope>provided</scope>
   </dependency>
 </dependencies>

1 Ответ

0 голосов
/ 04 апреля 2020

Вы должны установить пакет, который экспортирует пакет. Вы можете установить его из консоли командной строки karaf, используя команду

bundle:install mvn:<groupId>/<artifactId>/<version>

...