繁体   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