[英]Osgi eclipse: how to export package from a fragment bundle and make them visible to an external bundle?
[英](OSGi) How do i export a package for my bundle to import?
我正在從頭開始為 Eclipse 智能家居編寫一個 OSGi 包,並且需要導出某個 package。 這是必需的,因為目前 karaf 控制台向我顯示此錯誤:
Unresolved requirement: Import-Package: com.pubnub.api
在清單文件中,我可以看到我導入了相同的 package 等。 我使用 maven 來導入它,按照這里的官方文檔。
OSGi 開發支持告訴我,我必須“導出 com.pubnub.API package 才能讓我的捆綁包導入它”,但我不知道該怎么做。 看來我應該“找到或制作一個導出 PubNub API 的包”,但這個答案讓我感到困惑。
我想我需要在清單中的某處添加一行,例如“export-package etc”,但我不知道在哪個清單中,或者這是否是正確的方式。 我是 OSGi 框架的初學者。
我嘗試在類似的線程中搜索(例如this和this ),但我認為它們對我的情況沒有幫助。
為清楚起見,這是我的清單文件:
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)"
這是我的pom:
<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>
您必須安裝一個導出 package 的包。 您可以使用命令從 karaf 命令行控制台安裝它
bundle:install mvn:<groupId>/<artifactId>/<version>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.