如何将OSGI捆绑包的资源共享给其他捆绑包

如何将OSGI捆绑包的资源共享给其他捆绑包,osgi,Osgi,一个捆绑包的资源如何与其他捆绑包(而不仅仅是一个)共享? 例如,我不想将图像或属性文件复制到所有捆绑包,而是希望从单个位置访问它们 我尝试使用Fragment Host,但无法指定多个bundle(至少我不知道如何指定) 例如: com.bundlehost 您可以使用和获取捆绑资源。要阅读内容,请使用和获取捆绑资源。要阅读内容,请使用Dmytro注释,您可以使用OSGiAPI方法访问任何捆绑包中的资源。然而,更难的问题是:如何知道从哪个包访问这些资源,以及如何知道它们在包中的位置 如果你只是

一个捆绑包的资源如何与其他捆绑包(而不仅仅是一个)共享? 例如,我不想将图像或属性文件复制到所有捆绑包,而是希望从单个位置访问它们

我尝试使用Fragment Host,但无法指定多个bundle(至少我不知道如何指定) 例如:


com.bundlehost

您可以使用和获取捆绑资源。要阅读内容,请使用和获取捆绑资源。要阅读内容,请使用Dmytro注释,您可以使用OSGiAPI方法访问任何捆绑包中的资源。然而,更难的问题是:如何知道从哪个包访问这些资源,以及如何知道它们在包中的位置


如果你只是做出假设或硬编码答案,那么你最终会得到一个非常脆弱的系统和捆绑包之间隐藏的耦合。然后,当有人将您的捆绑包部署到应用程序中但不包括资源捆绑包时,一切都会中断。这违背了模块化的观点。

正如Dmytro所指出的,您可以使用OSGiAPI方法访问任何捆绑包中的资源。然而,更难的问题是:如何知道从哪个包访问这些资源,以及如何知道它们在包中的位置


如果你只是做出假设或硬编码答案,那么你最终会得到一个非常脆弱的系统和捆绑包之间隐藏的耦合。然后,当有人将您的捆绑包部署到应用程序中但不包括资源捆绑包时,一切都会中断。这违背了模块化的观点。

您还可以使用普通的包导入和导出来确保资源位于消费包的类路径上。例如,请参见

您还可以使用普通的包导入和导出来确保资源位于消费包的类路径上。例如,请参见

当你在多个地方需要东西时,我的脑海里总是响起警铃,因为这意味着这些模块之间存在耦合。有时是不可避免的,但总的来说,我想知道他们是否真的需要在多个地方。如果是这样的话,在服务中转换这些共享资源通常是表达依赖性的最佳方式。当您在多个地方需要东西时,我的脑海中总会响起警钟,因为这意味着这些模块之间存在耦合。有时是不可避免的,但总的来说,我想知道他们是否真的需要在多个地方。如果是这样,在服务中转换这些共享资源通常是表示依赖关系的最佳方式。
   <!-rest of the pom--> 
   <instructions>
       <Fragment-Host>
          com.bundlehost
       </Fragment-Host>
    </instructions>