我有一个捆绑(jersey-server)导入包(org.objectweb.asm
),其分辨率为可选,未指定版本:
org.objectweb.asm;resolution:=optional
目前,我们的应用程序已部署到Apache Karaf(使用Equinox框架),该框架将导出此软件包的新版本(org.objectweb.asm
),即版本4.0。我试图解决的问题是,由于jersey-server软件包没有为软件包指定版本,因此它连接到4.0。但是,我使用的jersey-server版本(1.12)与此版本不兼容。我在容器中有3.1版本的软件包,我需要将jersey-server软件包连接到。
我试图使用一个片段来满足我的需求,但它似乎没有起作用。我不完全理解片段导入包冲突解决方案在Equinox(或Felix)中是如何工作的,以便知道我正在尝试做什么甚至是可能的。也许还有另一种方式?
答案 0 :(得分:1)
不,碎片只是添加剂。即他们可以在主机包中添加额外的导入,但是他们无法替换或删除主机的导入。
jersey-server
捆绑包只是破坏了,必须修复。
答案 1 :(得分: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