我有一个带有多个捆绑包的 osgi 应用程序(在 felix 中)。一个包中有一些通用属性文件,其余包只需要使用它们即可。
我们使用 maven 和 spring osgi,属性文件位于如下资源中:
<path to bundle>/src/main/resources/
common.properties
engine.properties
...
Maven 通常在 bundle jar 中构建它们,因此它们应该位于应用程序类路径中,但是 Spring 无法访问它们,这会失败:
<context:property-placeholder location="classpath:common.properties" />
(尝试了 classpath*: 和其他组合)
这真的是 osgi 意识形态的一些全球性问题,而且没有标准的方法让它发挥作用吗?只有像这样的黑客和解决方法<osgix:cmProperties...>
?
之所以担心,是因为它使部署变得更加困难且容易出错:您不能mvn deploy
像在普通应用程序中那样在 jar 中部署属性文件 - 您必须在每次发布时手动将它们复制到生产盒中。