概述

因为有很多个项目要维护,同时因为这些项目的历史背景不一,有些可能是自己写的,有些是从别人那接过来的,所以,目前面临的一个问题就是 Go 版本可能不一致,但是,你又不敢冒冒然地就升级成一致的版本,毕竟测试的覆盖度还不足以给我信心这么做。

所以,当前阶段我还是先维持使用项目指定的 Go 版本,所以就有了在本地使用多个 Go 版本的需求。本文虽然说的是 Mac 环境,但是,实际上在 Linux 环境应该也是想通的。

通过 brew 管理多套环境

  1. [[email protected].io]# brew install go # 1.17
  2. [[email protected].io]# brew install [email protected].15
  3. [[email protected].io]# brew unlink go
  4. [[email protected].io]# brew link [email protected].15

指定版本运行代码

不想设置全局的固定版本,你也可以通过指定路径来运行不同的版本。

但是需要注意 GOPATH 这个环境变量,如果你不同版本的 Go 使用同个 GOPATH 的话,高版本一旦更新了依赖的库,那么低版本的就没法用了,很重要

  1. [[email protected].io]# GOPATH=/Users/liqiang.io/Applications/srcs/gopath1.14 \
  2. /Users/liqiang.io/Applications/srcs/go1.14.6/bin/go test cmd/server/main*

Goland 设置多版本

Goland 默认支持不同的 Go 版本,而且还可以帮你下载:

图 1:打开设置页面
图 2:选择 Go 的版本

如果你觉得还不够,那么可以让 Goland 帮你下载一个:

图 3:下载按钮
图 4:版本选择

各种版本任你选择。

GOPATH

但是,同样别忘记了切换了 Go 版本之后要选择不同的 GOPATH:

图 5:设置 GOPATH