【发布时间】:2009-12-02 07:02:07
【问题描述】:
我是 OSGi 标准的新手。我想了解更多关于捆绑包文件的结构。
- 发现有这个OSGi-INF文件夹,规范中提到了l10n和权限,不知OSGI-INF文件夹的使用定义在哪里?我可以在里面放其他东西吗?
- 在哪里存储包引用的 jar 文件?
- 除了 OSGi-INF 和 OSGi-OPT 之外,还有 OSGi 标准定义的文件夹吗?
【问题讨论】:
标签: localization jar osgi bundle
我是 OSGi 标准的新手。我想了解更多关于捆绑包文件的结构。
【问题讨论】:
标签: localization jar osgi bundle
您可能会查看 OSGi 核心规范。您可以从OSGi Alliances website 下载它(它实际上非常易读)。例如,对于 4.2 版的规范,第 3.2 章详细讨论了捆绑包及其结构。正如另一个答案中已经提到的那样,捆绑包实际上是带有清单的普通 jar 文件,其中包含几个特殊的清单标头。
其中一些标头还允许您指定某些文件的位置,例如在第 3.2.1.11 节中定义了 Bundle-Localization 标头:
Bundle-Localization 标头 包含捆绑包中的位置 在哪里可以找到本地化文件。 默认值为 OSGI-INF/l10n/包。翻译是 因此默认情况下 OSGI-INF/l10n/bundle_de.properties, OSGI-INF/l10n/bundle_nl.properties, 等等
【讨论】:
唯一必需的 OSGi 包元素是 META-INF/MANIFEST.MF 文件中特定于包的条目。
OSGi-INF 和 OSGi-OPT 都是可选的。
查看以下内容以了解构成 OSGi 捆绑包的原因: http://swik.net/Spring/Interface21+Team+Blog/Creating+OSGi+bundles/
这描述了 DS (Declarative Services) 如何使用 OSGi-INF 文件夹: http://www.eclipsezone.com/eclipse/forums/t97690.html
【讨论】: