簡體   English   中英

(OSGi) 如何導出 package 以供我的捆綁包導入?

[英](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 框架的初學者。

我嘗試在類似的線程中搜索(例如thisthis ),但我認為它們對我的情況沒有幫助。


為清楚起見,這是我的清單文件:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM