go import
go import
1.1 包的引入规则
依次从当前项目,GOROOT,GOPATH下寻找依赖包:
- 首先从当前go文件所在的目录逐级向上查找go.mod文件(假设go.mod位于目标$mode_path下里面定义了module_name,则引入包的路径为module_name/包相对于$mode_path)
- 然后,标准库提供的包在$GOROOT/src下
- 最后第三方依赖包在$GOPATH/pkg/mod下
2.1 包管理
从go1.17版本开始
go get只负责下载第三方依赖包,并把它加到go.mod文件里,由go install负责安装二进制文件
- go get github.com/mailru/easyjson会在 GOPATH/pkg/mod 目录下生成github.com/mailru/easyjson目录
- go install github.com/mailru/easyjson/easyjson会在 GOPATH/bin 下生成easyjson二进制可执行文件
go mod tidy通过扫描当前项目中的所有代码来添加未被记录的依赖至go.mod文件或从go.mod文件中删除不再被使用的依赖