2015-06-05 161 views
0

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

我们有一个现有的插件,也是第三方(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,并打破。

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

回答

2

不幸的不是。你将不得不改变jar来添加正确的元数据。你也应该在openarchitectureware上报告这个问题。所以他们可以为新版本生成正确的工件。

+0

谢谢克里斯蒂安,那正是我期待的。我认为openarchitectureware项目已经失效,所以我想我们必须自己改变它们。 –

+0

您可以编写一个ResolverHook,https://osgi.org/javadoc/r5/core/org/osgi/framework/hooks/resolver/package-summary.html,强制该软件包解析为旧版本的依赖项,但这就像用枪杀死一只蚂蚁:-) –