1

我有一个包(jersey-server),它导入一个包(org.objectweb.asm),分辨率为可选且未指定版本:

org.objectweb.asm;resolution:=optional

目前,我们的应用程序部署到 Apache Karaf(使用 Equinox 框架),它导出了这个包的一个新版本(org.objectweb.asm),即 4.0 版。我试图解决的问题是,由于 jersey-server 捆绑包没有为它连接到 4.0.0 的包指定版本。但是,我使用的 jersey-server 版本(1.12)与此版本不兼容。我需要 jersey-server 捆绑包连接到的容器中提供 3.1 版本的软件包。

我试图使用一个片段来满足我的需要,但它似乎不起作用。我不完全了解片段导入包冲突解决在 Equinox(或 Felix)中的工作原理,以了解我正在尝试做的事情是否可能。也许还有另一种方式?

4

2 回答 2

1

我对 pax-web 有类似的问题,我为它创建了一个“解决方法”:

https://github.com/ops4j/org.ops4j.pax.web/tree/master/pax-web-features/xbean-fragment

它也可以通过 maven 获得: http ://search.maven.org/#artifactdetails%7Corg.ops4j.pax.web%7Cxbean-fragment%7C3.0.0.M2%7Cbundle

于 2013-02-19T12:27:53.533 回答
1

不,碎片只是添加剂。即他们可以向他们的主机包添加额外的导入,但他们不能替换或删除主机的导入。

捆绑包被破坏了,jersey-server必须修复。

于 2013-02-19T11:34:24.747 回答