1

在我们的 Eclipse 产品中,我们在限定符中使用 svn 修订号替换。到目前为止,构建和更新产品已经成功,没有出现任何问题。然而,最近我们的 svn 版本号从 90000 增加到 100000 并且从 90000 版本更新不再起作用。我们的上一个版本是 1.0.0.Rx98971,新更新是 1.0.0.Rx100051,当我尝试使用更新管理器更新到新版本时,我收到错误“没有要更新的内容”。现在,如果构建产品的另一个版本,假设 1.0.0.Rx100052 并尝试更新 1.0.0.Rx100051,更新工作。如果我尝试将 0.1.0.Rx74511 版本更新为 1.0.0.Rx100051,更新也可以工作(显然这里它比较专业)。我在这里可以做的唯一假设是检测到 1.0.0.Rx100051 大于 1.0.0.Rx98971 时存在错误,尤其是 100051 > 98971,这就是更新失败的原因。我的这个假设是正确的,还是可能发生其他无法更新产品的事情?

我做过的一些测试

为了强制限定符更接近原始版本 (1.0.0.Rx98971),我将插件和功能的所有版本从 1.0.0.qualifier 更改为 1.0.0.Rx98980。我使用更新站点构建产品并使用 1.0.0.Rx98980 更新了 1.0.0.Rx98971,更新工作正常。接下来我再次将版本从 1.0.0.qualifier 更改为 1.0.0.Rx100679 并使用更新站点构建产品。使用 1.0.0.Rx100679 更新站点更新了 1.0.0.Rx98971 并发生了同样的错误 - “没有什么可更新的”。那么,这是否意味着限定符比较不能正确比较 svn 版本?

4

1 回答 1

1

OSGi 限定符是字符串,并且是这样比较的。所以1.0.0.100小于1.0.0.90

有关更多信息,请参阅http://wiki.eclipse.org/Version_Numbering#When_to_change_the_qualifier_segment

于 2012-12-20T18:09:04.563 回答