我们的一个捆绑包在joda-time / 2.2.0上有'进口'但是当我启动时,它总是拿起Karaf系统文件夹中的joda-time / 1.6.2。我不确定怎么会发生这种情况?有没有办法告诉karaf不要选择我们指定的系统捆绑?请注意,我们将bundle删除到deploy文件夹以安装它们。
答案 0 :(得分:1)
首先,请确保您确实需要此捆绑包的两个版本。是的,你可以做到这一点,但总的来说,除非你真的需要在你的应用程序中出现不同版本的bundle,否则请避免使用它。检查哪些包使用joda-time以及它们在Import-Package语句中指定的版本范围。
我不确定您是否知道这一点,但如果您导入了一个包,则总是,隐式或明确指定与您兼容的版本范围:
未明确指定范围被视为不良做法。 OSGi有一份关于语义版本控制的白皮书,可以更详细地解释这一点。
因此,请确保您了解使用joda-time的捆绑软件的版本,看看您是否只能部署一个joda-time实现,并确保您自己的捆绑包也使用与其兼容的版本范围。 / p>
答案 1 :(得分:0)