2015-06-05 86 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,強制該軟件包解析爲舊版本的依賴項,但這就像用槍殺死一隻螞蟻:-) –