天天看点

go语言多版本管理

作者:零一间
go语言多版本管理

Go 语言的多版本管理是为了解决不同项目或者同一项目的不同依赖包版本之间的冲突问题。

多版本管理

  1. 安装 Go
  2. 安装好了 git

运行 go install golang.org/ dl / go 命令将下载特定 Go 版本的包装器。

$ go install golang.org/dl/go<version>@latest

通过包装器,下载特定 Go 版本和它对应的工具链。

$ go<version> download

例如安装 1.18.9 版本,可以这样执行。

$ go install golang.org/dl/go1.18.9@latest
$ go1.18.9 download           

如图:

go语言多版本管理

完成代码:

(base) PS D:\goWork\go-test> go install golang.org/dl/go1.18.9@latest

(base) PS D:\goWork\go-test> go1.18.9 download
Downloaded   0.0% (    16384 / 155250028 bytes) ...
Downloaded  24.8% ( 38518656 / 155250028 bytes) ...
Downloaded  40.5% ( 62848592 / 155250028 bytes) ...
Downloaded  81.3% (126238272 / 155250028 bytes) ...
Downloaded 100.0% (155250028 / 155250028 bytes)
Unpacking C:\Users\{USER}\sdk\go1.18.9\go1.18.9.windows-amd64.zip ...
Success. You may now run 'go1.18.9'

(base) PS D:\goWork\go-test> go1.18.9 version
go version go1.18.9 windows/amd64

(base) PS D:\goWork\go-test> go version      
go version go1.20.5 windows/amd64           

图中看到,默认go是1.20版本,我们又安装了1.18版本,相互独立。

使用

以下是我的测试项目原始go mod

module example.com/m/v2

go 1.20

require golang.org/dl v0.0.0-20230629133730-ba866d363753 // indirect
           

我们删除文件重新使用go1.18.9初始化go mod

(base) PS D:\goWork\go-test> go1.18.9 mod init example.com/m/v2
go: creating new go.mod: module example.com/m/v2
(base) PS D:\goWork\go-test> cat go.mod
module example.com/m/v2

go 1.18           

此时我们可以看到go.mod文件,版本号变了。

那么剩下的go build ,go run 等命令也是类似了。

如图:

go语言多版本管理

继续阅读