Modules 是 Go 管理依赖关系的工具,在 1.11 版本中加入,并在 1.13中对模块进行了重大改进和更改。相比前面的 dep,vendor,glide 等包管理方案,更易于上手。如果你现在开始一个 go 项目,最好了解一下。
Modules 的使用非常简单,我们不妨尝试一下:
开启(1.13版本及以后无需这一步)
1.13版本前请需手动开启模块(1.13 版本开始已经是默认模式)
export GO111MODULE=auto
初始化
进入项目目录,执行以下命令:
go mod init github.com/puresai/gomodules
output:
go: creating new go.mod: module github.com/puresai/gomodules |
可以看到会生成go.mod,文件内容如下【go 1.19表示当前版本】
module github.com/puresai/gomodules |
使用 go get
每次 go get 后,modules也会将你的安装的package加入go.mod
go get github.com/puresai/gohelper
module github.com/puresai/gomodules |
当然,如果你没有翻墙,也没有使用国内镜像,很多包可能都下载失败。可以参考https://goproxy.cn/设置。
本地文件夹相互调用
新建 pkg 目录,新建 str.go
package pkg |
简单写一下 main.go
package main |
然后执行:
go run main.go |
这里可以执行根据提示执行
go get github.com/puresai/gohelper/str
或者可以使用
go mod tidy
这个命令可以拉取缺少的 package,移除不用的 package。
这个命令很有用,我习惯每次完成一个阶段代码都执行一次,可以去除很多冗余的 package。
其他命令
go mod download//下载依赖包到本地缓存 |
相关代码可参考:
https://github.com/puresai/blog-code/tree/master/gomodules