第三方 OSGi 库依赖冲突

Third party OSGi library dependency conflict

在我们基于 Eclipse 的产品中,我们引入了一个新的第三方插件,该插件依赖于 ANTLR v3.2+。

我们有一个现有插件,也是第三方 (openarchitectureware),它需要 ANTLR v3.0。问题是 openarchitectureware 插件没有指定依赖版本范围:

Require-Bundle: org.openarchitectureware.core.workflow,org.apache.comm ons.logging,
org.antlr.runtime,org.apache.log4j;resolution:=optional

这意味着他们尝试使用最新版本的 ANTLR,3.2 和 break。

有没有办法在不更改 openarchitectureware 插件的情况下强制它们针对 ANTLR 3.0 进行解析,即使有更新的版本可用?

不幸的是没有。您将必须更改 jar 以添加正确的元数据。您还应该在 openarchitectureware 上报告此问题。因此他们可以为新版本生成正确的工件。