我有一个使用Tycho(0.19.0)和Maven(3.0-5)构建的Eclipse 4项目
在开发版本(例如1.0.0)期间,工件配置为版本1.0.0-SNAPSHOT和1.0.0.qualifier,具体取决于文件。当我想发布版本时,我使用tycho-versions:set-version goal从1.0.0-SNAPSHOT更改为1.0.0。
然后我构建产品并将其复制到发布更新站点的远程共享,以便在发布时自动升级旧版本。
由于我有一些beta测试人员,我使用的是更多的一个更新站点。一个包含稳定版本,我的beta测试人员还有一个更新站点可以在启动时检查。另一个实际上是我发布的快照的更新站点,因此这些不是该产品的发布版本。
我遇到的情况似乎很奇怪:当1.0.0应用程序启动时,它会找到上一个快照(版本为1.0.0.201312191455),认为这些工件更新,并将自身更新回旧版本。
我猜Eclipse的版本约定声明x.y.z比x.y.z.u旧。这是对的吗?
如果是这样,那么当版本从快照更改为“发布”时,为什么tycho版本插件会删除限定符?这样做似乎使工件看起来比任何快照都旧。处理这种情况的正确方法是什么?
答案 0 :(得分:2)
前一段时间回答是在tycho邮件列表中给出的:
http://dev.eclipse.org/mhonarc/lists/tycho-user/msg01001.html
细节:
OSGi没有“快照”版本的概念,所有版本都是 处理相同,1.0.0.qualifier确实被认为是更新的 比1.0.0。
有两种版本控制方案可以产生合理的行为 适用于OSGi和Maven。
对两个Maven使用相同的四部分版本(例如,1.0.0.20111112-0735) 和OSGi。这从而导致稍微奇怪的版本跳转 在maven端发布的快照,即1.0.0-SNAPSHOT转到 1.0.0.20111112-0735,但一切正常。
使用偶数/奇数约定来版本快照和版本,即 1.0.1-SNAPSHOT / 1.0.1.qualifier以1.0.2 / 1.0.2发布。
我认为也可以解耦maven和osgi版本 发布工件,即使用1.0.0用于maven和1.0.0.20111112-0735用于 OSGi,但我个人认为这令人困惑,不会推荐。和 我不确定Tycho将来是否允许这样做。
- 问候, 伊戈尔