如何正确管理Tycho / EAP版本控制

时间:2013-12-30 15:16:35

标签: maven eclipse-rcp tycho

我有一个使用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版本插件会删除限定符?这样做似乎使工件看起来比任何快照都旧。处理这种情况的正确方法是什么?

1 个答案:

答案 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将来是否允许这样做。

     

-   问候,   伊戈尔