【发布时间】:2017-01-12 20:49:05
【问题描述】:
我正在尝试OSGify我的项目。
我正在使用Fuse jboss-fuse-6.2.1.redhat-084,如果我查看osgi:headers 的包,我会收到红色错误org.beanio。
Import-Package =
com.thoughtworks.xstream;version="[1.4,2)",
javax.activation,
javax.mail;version="[1.4,2)",
javax.mail.internet;version="[1.4,2)",
javax.xml.bind,
org.apache.activemq.camel.component,
org.apache.camel;version="[2.15,3)",
org.apache.camel.builder;version="[2.15,3)",
org.apache.camel.dataformat.bindy.fixed,
org.apache.camel.spring.spi;version="[2.15,3)",
org.apache.cxf.interceptor;version="[3.0,4)",
org.apache.log4j;version="[1.2,2)",
org.beanio;version="[2.1,3)",
(others)
错误:
缺少要求 osgi.wiring.package; (&(osgi.wiring.package=org.beanio)(version>=2.1.0)(!(version>=3.0.0)))))
我自己并没有明确导入beanio:它从org.jboss.fuse.bom 获取此保险丝。 camel-beanio version 是 2.15.1.redhat-621084 并使用 org.beanio v2.1.0。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-beanio</artifactId>
</dependency>
我已经用 grep 搜索了 osgi:classes 并且没有使用 v3.0。此外,v3.0 甚至不存在。所以,我不知道它从哪里得到“[2.1,3)”。
我想出了如何指定 2.1.0,但它只是抱怨找不到 2.1.0。
那我该怎么办?什么都没有导出 2.1.0。但我无法从 Import-Package 中删除它,因为 * 在搜索代码后包含它。
【问题讨论】:
-
您似乎误解了错误消息。它说它需要
org.beanio版本 >= 2.1.0 和 NOT >= 3.0.0...语法[2.1,3)表示包含 2.1,最多 3 个不包含。 -
你可以先在fuse shell中运行
install:feature camel-beanio来安装camel-beanio。而且您应该始终在项目中使用与 Fuse 相同的版本。
标签: maven osgi jbossfuse fuseesb maven-bundle-plugin