我使用osgi / equinox并在浏览我们的一个包MANIFEST.MF文件时遇到了奇怪的行:
Export-Package: package.a.b.c;dynamic=domain
使用 dynamic = domain 选项导出包是什么意思?它与常规导出有什么不同(没有任何其他选项)?
答案 0 :(得分:4)
您可以根据需要向Export-Package子句添加任意数量的自定义属性。另一方面(Import-Package),您可以指定只有具有特定属性的包才对您有用。
请参阅OSGi核心规范的 3.6.5 Export-Package 一章:
以下属性是本规范的一部分:
version - 命名包的版本,其语法在第35页的版本中定义。它 定义关联包的版本。默认值为0.0.0。
specification-version - 版本属性的别名,仅用于简化从早期版本的迁移。如果存在version属性,则值必须相等。
此外,可以指定任意匹配属性。请参阅属性匹配(第58页)
参见OSGi核心规范的 3.7.7属性匹配一章:
例如,以下语句将匹配。
finally
除了使用版本范围比较的版本和bundle-version属性之外,属性值按字符串进行比较。必须忽略属性值中的前导和尾随空格。
请注意,我仅引用了本章的某些部分。您应该检查规格中的原件。
我不认为在Equinox的代码中以特定的方式处理这些属性。如果有多个具有相同名称的包,则可以在Import-Pacakge子句中使用它们。