我在OSGi包中导入包时遇到问题。
名为org.semanticweb.HermiT.datatypes.xmlliteral
的程序包包含在jar文件org.semanticweb.HermiT.jar
中。此jar包含在我的目标定义中,并在我的运行配置中选择。我的目标将其识别为OSGi包,因此不应该是问题所在。当我尝试在我自己的bundle中导入包时,我得到一个错误,说没有bundle导出包。谁知道可能是什么问题?
答案 0 :(得分:3)
检查“org.semanticweb.HermiT.jar”的标准下载,它没有Export-Package。因此,JAR中的所有软件包都不能被其他OSGI组件使用。
更新:
pax-url wrap plugin可以帮助你将非osgi JAR包装成osgi包并添加任意MANIFEST行。
https://ops4j1.jira.com/wiki/display/paxurl/Wrap+Protocol
可能还有一个原因是他们不包含Export-Package。您可能想直接询问创作者以确保您没有找到麻烦。
您也可以只更新您拥有的JAR,然后在部署时始终使用它。实际上有一些选项。
您还可以看到这个项目是如何做到的:
他们使用maven bundle插件创建一个pom.xml并提供他们的OWN清单条目。