提问者:小点点

升级STS的推荐方法?


假设我有一个相当大的Spring Tool Suite(STS)用户组织。这些用户正在使用一些过时的STS版本(例如3.1.0)。

将这些用户升级到最新的STS Eclipse的推荐和最不痛苦的方法是什么?

我基本上看到了两种主要的方法。

使用Eclipse内置的P2更新机制从Eclipse/STS内部更新STS Eclipse。这是官方支持的方式吗?假设我坚持使用STS的“官方发布”STS Eclipse版本组合(例如STS 3.1.0 Eclipse 3.8.0、STS 3.1.0 Eclipse 4.2.0、STS 3.2.0 Eclipse 3.8.2、STS 3.2.0 Eclipse 4.2.2等)。

这样做的好处是保留所有已经安装的插件和设置。

安装STS的新副本并从旧的STS安装导入设置。用户需要重新安装插件。

我更喜欢第一种选择,但在投入大量时间让这个过程对用户尽可能无缝之前,我想确认这是“官方支持的”。

而且,STS对底层Eclipse版本的依赖程度如何?例如,我在Eclipse 3.8.0之上安装了STS 3.1.0——我可以假设将底层Eclipse版本升级到3.8.1或3.8.2不会导致任何兼容性问题吗?或者我应该坚持STS下载页面上列出的组合(意味着我也应该将STS升级到3.2.0)?

更新

我查看了不同Eclipse版本的STS更新站点,以查看每个版本有哪些STS版本可用(当前最新的STS版本是3.6.4)。我发现:

  • Eclipse 3.73.6.3.201411281408-RELEASE-e37
  • Eclipse 3.83.6.3.201411281415-RELEASE-e38
  • Eclipse 4.23.6.3.201411281410-RELEASE-e42
  • Eclipse 4.33.6.4.201503100337-RELEASE-e43
  • Eclipse 4.43.6.4.201503100339-RELEASE-e44

(我搜索了"org. springsource.st.ide"IU/plugin/bundleID)

这似乎意味着,通过使用正确的更新站点,即使底层Eclipse平台版本非常旧,也应该可以将STS升级到相当新的版本——导致Eclipse STS组合没有可用的完整下载包。


共1个答案

匿名用户

这是一个更复杂的问题,所以让我更详细地解释我对此的想法。

首先是更新站点兼容性问题。对于每个新版本的STS,我们通常提供两到三个不同的更新站点:

  • 一个用于最新的Eclipse版本(目前为Eclipse 4.4)
  • 一个用于之前的Eclipse版本(目前Eclipse 4.3)
  • 也许是即将发布的Eclipse版本(目前为Eclipse 4.5)

这就是为什么不再看到基于3.7-4.2的更新站点的更新的原因(在您上面的列表中)。由于Eclipse迁移到新的4. x流(这在过去造成了一些麻烦),我们继续提供3.7-4.2兼容版本这么长时间。但是这个“支持旧Eclipse版本的延长期”已经结束。从现在开始,我们回到上面概述的策略。

您可以使用这些更新站点将现有的STS安装更新到STS的下一个版本。这些更新不会自动更改底层的主要Eclipse版本。这在过去造成了太多麻烦。这也是我的建议:如果您想继续使用相同的底层Eclipse版本,您可以使用这些更新站点(以及帮助菜单中的“检查更新”)将STS更新到STS组件的下一个版本。

如果您想升级到新版本的Eclipse,我建议为这个较新的Eclipse版本下载一个新的STS副本,并迁移首选项(如您所述)。工作区通常是兼容的,因此您不需要设置新的工作区。

但这需要再次重新安装您之前在STS安装中安装的第三方插件。这通常是一项相当乏味且耗时的任务。因此,我使用了一个自动执行此操作的脚本:

https://gist.github.com/martinlippert/5155155

这是一个脚本的例子,我用它(在我的OSX机器上)从列出的更新站点批量自动安装一堆附加功能。您可能需要修改它以正确获取第三方功能和更新站点,也许还需要修改它以使其在Windows上运行(从未尝试过),但基本思想应该适用于所有不同的平台(最终它运行一个带有命令行参数的JVM)。

希望这解释了各种策略并对您有所帮助。如果您有进一步的问题,我很乐意提供帮助!

干杯!