我正在尝试安装依赖于另一个的捆绑包。
当我尝试通过maven(存储它)安装它时,我收到以下错误:
install -s mvn:com.mycompany.er/ER_api/0.1218.0
Bundle ID: 544
Error executing command: Error installing bundles:
Unable to start bundle mvn:com.mycompany.er/ER_api/0.1218.0: Unresolved constraint in bundle com.mycompany.er.ER_api [544]:
Unable to resolve 544.0: missing requirement [544.0] osgi.wiring.package; (&(osgi.wiring.package=com.mycompany.application.errors)(version>=0.145.0)(!(version>=1.0.0)))
捆绑包显示为已安装:
[ 544] [Installed ] [ ] [ ] [ 60] ER_api (0.1218.0)
列出ER_api
捆绑包的标头,表明它确实依赖于com.mycompany.application.errors
,并且显示为红色。
Import-Package =
....
com.mycompany.application.errors;version="[0.145,1)",
根据我的理解,所需的版本大于或等于0.145,但小于1.因此版本0.145.0应符合此标准。
有问题的软件包com.mycompany.application.errors
在软件包APPLICATION_app_common
中可用,该软件包似乎已安装并处于活动状态:
[ 540] [Active ] [ ] [ ] [ 60] APPLICATION_app_common (0.145.0)
检查包是否导出显示它是:
JBossFuse:karaf@root> headers 540
APPLICATION_app_common (540)
----------------------------
Manifest-Version = 1.0
Bnd-LastModified = 1459506884903
Tool = Bnd-1.50.0
....
Export-Package =
com.mycompany.application;version=0.145.0,
com.mycompany.application.errors;
uses:="javax.xml.bind.annotation,
javax.ws.rs.core,
com.mycompany.application.smapi";
version=0.145.0,
使问题复杂化的唯一因素是它不是直接依赖,而是传递依赖。 ER_api
取决于ER_transactions_log
,这取决于APPLICATION_app_common
。我已安装并激活最新版本的ER_transactions_log
:
[ 511] [Active ] [ ] [ ] [ 60] ER_transactions_log (0.45.0.SNAPSHOT)
我无法理解为什么它无法看到导出的包。 APPLICATION_app_common
在其Export-Package列表中清楚地列出了包。
如何调试?