Localization 什么是OSGi包包结构?

Localization 什么是OSGi包包结构?,localization,jar,osgi,bundle,Localization,Jar,Osgi,Bundle,我是OSGi标准的新手。我想更多地了解bundle包文件的结构 发现有这个OSGi-INF文件夹,规范中提到了l10n和权限,我想知道OSGi-INF文件夹的使用是从哪里定义的?我能把其他东西放进去吗 在哪里存储捆绑包引用的jar文件 除了OSGi INF和OSGi OPT之外,还有OSGi标准定义的文件夹吗 唯一必需的OSGi bundle元素是META-INF/MANIFEST.MF文件中特定于bundle的条目 OSGi INF和OSGi OPT都是可选的 查看以下内容,了解OSGi捆绑包

我是OSGi标准的新手。我想更多地了解bundle包文件的结构

  • 发现有这个OSGi-INF文件夹,规范中提到了l10n和权限,我想知道OSGi-INF文件夹的使用是从哪里定义的?我能把其他东西放进去吗
  • 在哪里存储捆绑包引用的jar文件
  • 除了OSGi INF和OSGi OPT之外,还有OSGi标准定义的文件夹吗

  • 唯一必需的OSGi bundle元素是META-INF/MANIFEST.MF文件中特定于bundle的条目

    OSGi INF和OSGi OPT都是可选的

    查看以下内容,了解OSGi捆绑包的构成要素:

    下面介绍DS(声明性服务)如何使用OSGi INF文件夹:

    OSGi捆绑包与普通JAR文件没有区别,除了JAR清单中的一些必需条目,
    META-INF/manifest.MF
    文件(正如James已经指出的那样)

    所有其他文件和目录都只是约定和最佳实践,例如和分别使用的文件夹
    META-INF/spring
    META-INF/maven


    一些OSGi服务定义了关于使用
    OSGi-INF
    目录的类似约定。据我所知,规范中没有一个地方列出了所有这些约定。您可以打开并搜索“OSGI-INF”以查找所有事件:-)不要担心它们不会太多

    您可以看看OSGi核心规范。您可以从下载(它实际上相当可读)。例如,对于规范的4.2版,第3.2章详细讨论了捆绑包及其结构。正如在另一个答案中已经提到的,bundle实际上是普通的jar文件,其清单包含两个特殊的清单头

    其中一些标头还允许您指定某些文件的位置,例如,在第3.2.1.11节中,定义了捆绑包本地化标头:

    Bundle本地化头 包含包中的位置 在那里可以找到本地化文件。 默认值为 OSGI-INF/l10n/bundle。翻译是 因此,默认情况下 OSGI-INF/l10n/bundle\u de.properties, OSGI-INF/l10n/bundle\u nl.properties, 等