【发布时间】:2014-01-30 00:40:30
【问题描述】:
我正在考虑在我们的项目中管理版本控制的最佳方式。目前,我们的包中的每个包都被导出(这将在以后改进,所以不要挂断这个失礼)。我们正在使用 maven-bundle-plugin,它可以从 packageinfo 文件中获取 package 版本,或者如果没有文件,则从 bundle-version(即 pom版本)。
所以我的问题是,似乎每个包都有一个 packageinfo 很多(再次,我知道减少导出的包可以解决这个问题)所以我想知道为什么最好有一个每个包的版本而不是全局版本(捆绑版本)?
所以说捆绑 A 已发布
A (1.0.0)
|...foo (1.0.0)
|...bar (1.0.0)
现在如果 package bar 发生变化,发布 bundle A 的理想方式是
A (1.0.1)
|...foo (1.0.0)
|...bar(1.0.1)
拥有一个版本以使 foo 发布为 1.0.1,即使它的内容没有改变,会不会很糟糕(如果是,为什么?)?因为除了在每个导出的包中都有一个 packageinfo 文件外,开发人员还需要记住调整版本(他们会忘记),而包的版本是由 maven-release- 自动调整的插入。请注意,我不是在谈论使用 require-bundle。我仍然想使用 import-package 来获得它带来的粒度,并在需要时可以选择通过 packageinfo 控制包版本,但我正在尝试简化开发人员的工作流程和记忆,一个想法是仅在特殊情况下保留 packageinfo 而不是推荐的“无处不在”
看到它的方式,非常务实,我必须在发布具有相同版本的两个不同软件包的危险之间做出选择(开发人员在更改后忘记增加数字),这对我来说似乎非常糟糕 VS 发布两个相同的软件包使用不同的版本,我不知道它会带来什么危险,因此我的问题
【问题讨论】:
-
请澄清。为什么再次发布相同版本的软件包会有危险?如果自上次发布以来该软件包实际上没有更改,那么它应该是相同的版本。
-
我的意思是,危险在于发布一个 DID CHANGE 的软件包具有相同的版本。这种情况是开发人员更改了代码但没有增加 packageinfo 中的数字。我正在比较这与总是碰撞包版本的影响,即使包没有改变。希望更清楚
标签: osgi versioning