升级STS的推荐方式?
Recommended way to upgrade STS?
假设我有一个相当大的 Spring Tool Suite (STS) 用户组织。这些用户正在使用一些过时版本的 STS(例如 3.1.0)。
将这些用户升级到最新的 STS+Eclipse 的推荐且最不痛苦的方法是什么?
我基本上看到了两种主要方法。
使用Eclipse 内置的P2 更新机制 从Eclipse/STS 中更新STS+Eclipse。这是官方支持的方式吗?假设我坚持使用 STS 的 "officially released" 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 安装中导入设置。用户需要重新安装插件。
我更喜欢第一个选项,但在投入大量时间使这个过程对用户尽可能无缝之前,我想确认这是 "officially supported"。
而且,STS 对底层 Eclipse 版本的依赖程度如何?例如,我在 Eclipse 3.8.0 之上安装了 STS 3.1.0——我可以假设升级底层Eclipse版本改为3.8.1或3.8.2会不会造成兼容性问题?还是我应该坚持 STS download page 中列出的组合(意味着我也应该将 STS 升级到 3.2.0)?
更新
我查看了不同 Eclipse 版本的 STS 更新站点,以查看每个版本都有哪些 STS 版本(当前最新的 STS 版本是 3.6.4)。我发现:
- Eclipse 3.7 有 3.6.3.201411281408-RELEASE-e37
- Eclipse 3.8 有 3.6.3.201411281415-RELEASE-e38
- Eclipse 4.2 有 3.6.3.201411281410-RELEASE-e42
- Eclipse 4.3 有 3.6.4.201503100337-RELEASE-e43
- Eclipse 4.4 有 3.6.4.201503100339-RELEASE-e44
(我搜索了"org.springsource.sts.ide" IU/plugin/bundle ID)
这似乎意味着通过使用正确的更新站点,应该可以将 STS 升级到最新版本,即使底层 Eclipse 平台版本很旧——导致 Eclipse+STS 组合没有提供完整的下载包。
这是一个比较复杂的问题,所以让我更详细地解释一下我对此的看法。
首先,更新站点兼容性问题。对于每个新版本的 STS,我们通常提供两到三个不同的更新站点:
- 一个用于最新的 Eclipse 版本(目前为 Eclipse 4.4)
- 一个用于以前的 Eclipse 版本(目前是 Eclipse 4.3)
- 可能是即将发布的 Eclipse 版本(目前是 Eclipse 4.5)
这就是为什么不再看到基于 3.7 - 4.2 的更新站点的更新(在您上面的列表中)的原因。由于 Eclipse 迁移到新的 4.x 流(这在过去造成了一些麻烦),我们继续提供 3.7-4.2 兼容版本这么久。不过这个"extended period of supporting older Eclipse versions"就结束了。从现在开始,我们回到上面概述的策略。
您可以使用这些更新站点将现有的 STS 安装更新到下一版本的 STS。这些更新不会自动更改底层的主要 Eclipse 版本。这在过去造成了太多的麻烦。这也是我的建议:如果您想继续使用相同的底层 Eclipse 版本,您可以使用这些更新站点(以及帮助菜单中的 "Check for Updates")将 STS 更新到下一个版本的STS 组件。
如果您想升级到新版本的 Eclipse,我建议为这个较新的 Eclipse 版本下载一个新的 STS 副本并迁移首选项(如您所述)。工作区通常是兼容的,因此您无需设置新的工作区。
但这需要重新安装您之前在STS 安装中安装的第三方插件。这通常是一项非常繁琐且耗时的任务。因此,我正在使用一个自动执行此操作的脚本:
https://gist.github.com/martinlippert/5155155
这是我使用的脚本示例(在我的 OSX 机器上)自动批量安装来自列出的更新站点的一系列附加功能。您可能需要修改它以获得您的第三方功能并正确更新站点,并可能对其进行一些修改以使其在 Windows 上工作(从未尝试过),但基本思想应该适用于所有各种平台(最后它运行一个带有命令行参数的 JVM)。
希望这解释了各种策略并对您有所帮助。
如果您还有其他问题,我很乐意为您提供帮助!
干杯!
假设我有一个相当大的 Spring Tool Suite (STS) 用户组织。这些用户正在使用一些过时版本的 STS(例如 3.1.0)。
将这些用户升级到最新的 STS+Eclipse 的推荐且最不痛苦的方法是什么?
我基本上看到了两种主要方法。
使用Eclipse 内置的P2 更新机制 从Eclipse/STS 中更新STS+Eclipse。这是官方支持的方式吗?假设我坚持使用 STS 的 "officially released" 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 安装中导入设置。用户需要重新安装插件。
我更喜欢第一个选项,但在投入大量时间使这个过程对用户尽可能无缝之前,我想确认这是 "officially supported"。
而且,STS 对底层 Eclipse 版本的依赖程度如何?例如,我在 Eclipse 3.8.0 之上安装了 STS 3.1.0——我可以假设升级底层Eclipse版本改为3.8.1或3.8.2会不会造成兼容性问题?还是我应该坚持 STS download page 中列出的组合(意味着我也应该将 STS 升级到 3.2.0)?
更新
我查看了不同 Eclipse 版本的 STS 更新站点,以查看每个版本都有哪些 STS 版本(当前最新的 STS 版本是 3.6.4)。我发现:
- Eclipse 3.7 有 3.6.3.201411281408-RELEASE-e37
- Eclipse 3.8 有 3.6.3.201411281415-RELEASE-e38
- Eclipse 4.2 有 3.6.3.201411281410-RELEASE-e42
- Eclipse 4.3 有 3.6.4.201503100337-RELEASE-e43
- Eclipse 4.4 有 3.6.4.201503100339-RELEASE-e44
(我搜索了"org.springsource.sts.ide" IU/plugin/bundle ID)
这似乎意味着通过使用正确的更新站点,应该可以将 STS 升级到最新版本,即使底层 Eclipse 平台版本很旧——导致 Eclipse+STS 组合没有提供完整的下载包。
这是一个比较复杂的问题,所以让我更详细地解释一下我对此的看法。
首先,更新站点兼容性问题。对于每个新版本的 STS,我们通常提供两到三个不同的更新站点:
- 一个用于最新的 Eclipse 版本(目前为 Eclipse 4.4)
- 一个用于以前的 Eclipse 版本(目前是 Eclipse 4.3)
- 可能是即将发布的 Eclipse 版本(目前是 Eclipse 4.5)
这就是为什么不再看到基于 3.7 - 4.2 的更新站点的更新(在您上面的列表中)的原因。由于 Eclipse 迁移到新的 4.x 流(这在过去造成了一些麻烦),我们继续提供 3.7-4.2 兼容版本这么久。不过这个"extended period of supporting older Eclipse versions"就结束了。从现在开始,我们回到上面概述的策略。
您可以使用这些更新站点将现有的 STS 安装更新到下一版本的 STS。这些更新不会自动更改底层的主要 Eclipse 版本。这在过去造成了太多的麻烦。这也是我的建议:如果您想继续使用相同的底层 Eclipse 版本,您可以使用这些更新站点(以及帮助菜单中的 "Check for Updates")将 STS 更新到下一个版本的STS 组件。
如果您想升级到新版本的 Eclipse,我建议为这个较新的 Eclipse 版本下载一个新的 STS 副本并迁移首选项(如您所述)。工作区通常是兼容的,因此您无需设置新的工作区。
但这需要重新安装您之前在STS 安装中安装的第三方插件。这通常是一项非常繁琐且耗时的任务。因此,我正在使用一个自动执行此操作的脚本:
https://gist.github.com/martinlippert/5155155
这是我使用的脚本示例(在我的 OSX 机器上)自动批量安装来自列出的更新站点的一系列附加功能。您可能需要修改它以获得您的第三方功能并正确更新站点,并可能对其进行一些修改以使其在 Windows 上工作(从未尝试过),但基本思想应该适用于所有各种平台(最后它运行一个带有命令行参数的 JVM)。
希望这解释了各种策略并对您有所帮助。 如果您还有其他问题,我很乐意为您提供帮助!
干杯!