【问题标题】:what is the relation between package and bundle version in OSGiOSGi中包和包版本之间的关系是什么
【发布时间】:2013-12-26 07:28:05
【问题描述】:

在 OSGi 捆绑包中,包使用版本号导出和导入。仍然捆绑包定义了一个版本。这对我来说似乎是多余的。

对捆绑包和其中包含的包进行版本控制有什么意义?我知道捆绑包/jar 可能会被版本化以在非 OSGi 系统中使用它(例如,对于 maven)。还有其他原因吗?

我对这两个级别的版本控制有点困惑。这两个版本号是依赖于还是独立于它们包含的包版本?如果依赖,捆绑版本的规则是什么?

【问题讨论】:

    标签: osgi versioning


    【解决方案1】:

    在 OSGi 中,包定义了用于让包协作的契约。 Bundles 是保存代码的 JAR。

    • 包版本的目的是确保捆绑包仅依赖/使用与其兼容的合同。包使用语义版本控制来表示次要、微小和主要的变化。一个包可以导出和导入任意数量的包,并且确实提供和使用任意数量的合同。
    • 捆绑版本的目的是为每个 JAR 提供一个唯一标识符,以便在开发生命周期中对其进行处理。 SHA 代码也可以,但不太方便。一些组织会根据其任何软件包中的最高更改来提升捆绑版本。 IE。如果它包含的包裹只有微小的变化,那么这个捆绑包就会因为微小的变化而受到冲击。如果一个包发生重大变化,则该捆绑包将变为主要包。

    【讨论】:

      猜你喜欢
      • 2013-09-18
      • 2011-02-05
      • 2012-11-09
      • 1970-01-01
      • 2011-11-21
      • 2021-06-17
      • 1970-01-01
      • 2022-01-20
      相关资源
      最近更新 更多