我正在尝试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)(> = 2.1.0版)(!(> = 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中删除它,因为*在搜索代码后包含了它。
正如您自己所说:" camel-beanio版本是2.15.1。Redhat-621084,它使用org。beanio v2.1.0" .
你只是需要这个在你的诗:
<dependency>
<groupId>org.beanio</groupId>
<artifactId>beanio</artifactId>
<version>2.1.0</version>
</dependency>
这是在Maven中心,所以它应该工作。
正如我在评论中提到的,您得到的错误消息告诉您需要版本>= 2.1.0而非>= 3.0的org.beanio
包。
上面的依赖项提供了这个包,正如你在这里看到的。
然而,这似乎不是一个OSGi包…所以你需要把它括起来
在features.xml
中包含如下依赖项:
<bundle>mvn:org.beanio/beanio/${version}</bundle>
然后,输入features:refreshurl
command并安装bundle