3

我在导入 OSGi 包中的包时遇到问题。

调用的包org.semanticweb.HermiT.datatypes.xmlliteral包含在 jar 文件org.semanticweb.HermiT.jar中。这个 jar 包含在我的目标定义中,并在我的运行配置中选择。我的目标将其识别为 OSGi 捆绑包,因此这不应该是问题。当我尝试在自己的包中导入包时,我收到一条错误消息,提示没有包导出包。谁知道可能是什么问题?

4

1 回答 1

3

检查“org.semanticweb.HermiT.jar”的标准下载,它没有导出包。因此,JAR 中的任何包都不能被其他 OSGI 组件使用。

更新:

pax-url 包装插件可以帮助您将非 osgi JAR 包装到 osgi 包中并添加任意 MANIFEST 行。

https://ops4j1.jira.com/wiki/display/paxurl/Wrap+Protocol

他们不包括 Export-Package 也可能是有原因的。您可能想直接询问创建者,以确保您没有自找麻烦。

您也可以只更新您拥有的 JAR,然后在部署时始终使用它。实际上有很多选择。

你还可以看到这个项目是如何做到的:

http://iks-project.googlecode.com/svn-history/r794/sandbox/kres/trunk/eu.iksproject.kres.shared/dependency/hermit124/pom.xml

他们创建一个 pom.xml 并使用 maven bundle 插件提供他们的 OWN 清单条目。

于 2013-07-22T14:06:56.100 回答