【发布时间】:2014-03-30 09:02:16
【问题描述】:
我有 2 个不同的模块 A 和 B。我还有另一个模块 C。
A 使用 C 版本 1.0
B 使用 C 版本 2.0
问题是因为 C 2.0 不向后兼容,即使 C 1.0 和 C 2.0 的 groupId 和 artifactId 值相同,我不能在我的 pom.xml 中排除其中一个并将另一个用于 A 和B. 因此排除标签在这种情况下不起作用。我需要向特定模块注入依赖项。
我发现我可以将 OSGI 用于此目的,但我无法使其工作。如果您有任何 OSGI 教程或其他解决方案,那就太好了。
【问题讨论】:
-
OSGi 在这种情况下是一个巨大的大锤来破解橡子。只需排除依赖项并包含您想要的特定版本。
-
@BoristheSpider 有没有办法在一个项目中使用两个不同版本的包?包 A 只是一个 jar 包,我不能(不应该)修改它。另一方面,C 2.0 支持我需要在包 B 中使用的新功能。
-
你知道使用不同的类加载器
标签: java maven intellij-idea apache-felix maven-bundle-plugin