【发布时间】:2016-04-01 18:01:01
【问题描述】:
在我的 Bnd (OSGi) 项目中,每当我尝试运行捆绑包(在本例中称为 UI) 时,我都会收到以下错误,即使我有依赖 jar (org.apache.commons.io) 正确安装。
org.osgi.framework.BundleException: Unresolved constraint in bundle ui [12]: Unable to resolve 12.2: missing requirement [12.2] osgi.wiring.package; (&(osgi.wiring.package=org.apache.commons.io)(version>=2.0.0)(!(version>=3.0.0)))
我曾尝试使用其他 org.apache.commons.io 版本,但没有成功。
UI Bnd.bnd 文件
Bundle-Version: 0.0.0.${tstamp}
-buildpath: \
../cnf/plugins/org.apache.felix.dependencymanager.annotation-3.2.0.jar;version=file,\
org.apache.felix.dependencymanager,\
osgi.core,\
launcher;version=latest,\
org.apache.commons.io
Private-Package: \
ui.impl,\
resources.css,\
resources.images
Export-Package: ui
Import-Package: *
我该如何解决这个问题?
提前谢谢大家。
【问题讨论】:
-
您是否安装了导出包的包,以便在运行包时解析?
-
感谢@BJ Hargrave 的回复我已尝试将
-runrequires: osgi.identity;filter:='(osgi.identity=org.apache.commons.io)'添加到Bnd.bnd 文件中,但这并不能解决问题。我仍然得到同样的错误 -
这不能回答 BJ 的问题。 org.apache.commons.io 包是否处于已解决状态?
-
@Neil Bartlett 它处于已安装状态
-
所以那不是。可能缺少一个依赖项,这会阻止 commons.io 包解析。当您尝试启动该捆绑包时会发生什么?