簡體   English   中英

Osgi eclipse:如何從片段包中導出包並使它們對外部包可見?

[英]Osgi eclipse: how to export package from a fragment bundle and make them visible to an external bundle?

入門情況(沒有任何錯誤):

  • 我有三個不同的包:bunbdle A(稱為org.apache.xmlbeans),bundle B和bundle C
  • bundle B導入從bundle A導出的一些包
  • bundle B導出一些包(例如包com.prova.xsd.config)
  • bundle C導入bundle B導出的包(例如包com.prova.xsd.config)

現在我將bundle B作為bundle A(fragment-host)的一個片段,在bundle B的MANIFEST中添加指令Fragment-Host:org.apache.xmlbeans

在此更改之后,所有包(A,B,C)的MANIFEST.MF中都沒有錯誤,但在包CI的類.java中有編譯錯誤:“導入com.prova.xsd.config不能是已解決“與文件頭部的導入相關聯.java。

問題是什么? 我該如何解決?

非常感謝,

安德里亞

您需要在主機插件A的Manifest中添加“Eclipse-ExtensibleAPI:true”。

來自Eclipse Help:OSGi Manifest Bundle

Eclipse-ExtensibleAPI標頭

Eclipse-ExtensibleAPI用於指定主機包是否允許片段包向主機添加其他API。 如果主機包想要允許片段將其他包添加到主機的API,則應使用此標頭。 如果未指定此標頭,則使用默認值“false”。 請注意,此標頭僅供工具(PDE)用於構建正確的構建類路徑。 運行時根本不使用此標頭。 在運行時,始終允許片段將其他包,類和資源添加到主機的API。 Eclipse-ExtensibleAPI標頭必須使用以下語法:

Eclipse-ExtensibleAPI ::= ( 'true' | 'false' )

以下是Eclipse-ExtensibleAPI標頭的示例:

Eclipse-ExtensibleAPI: true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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