Go module

module

Go 在 1.11 之后推出了依赖包管理工具 Go Modules,使得开发者可以在 GOPATH 指定的目录外组织项目代码。

官方go module wiki go/wiki/Modules;

Introduction to Go Modules 是一篇很好的go module 入门介绍;

要使用go module,首先要设置`GO111MODULE=on。go module 安装 package 的原則是先拉最新的 release tag,若无tag则拉最新的commit,详见 Modules官方介绍。go 会自动生成一个 go.sum 文件来记录 dependency tree。

go help mod查看帮助

download    download modules to local cache (下载依赖的module到本地cache))
edit        edit go.mod from tools or scripts (编辑go.mod文件)
graph       print module requirement graph (打印模块依赖图))
init        initialize new module in current directory (在当前文件夹下初始化一个新的module, 创建go.mod文件))
tidy        add missing and remove unused modules (增加丢失的module,去掉未用的module)
vendor      make vendored copy of dependencies (将依赖复制到vendor下)
verify      verify dependencies have expected content (校验依赖)
why         explain why packages or modules are needed (解释为什么需要依赖)
go mod init moduleName
go mod init github.com/longjoy/micro-go-course 
// output 
go: creating new go.mod: module github.com/longjoy/micro-go-course

go.mod:

module github.com/longjoy/micro-go-course 
go 1.14

go list -m -u all 来检查可以升级的package,使用go get -u need-upgrade-package 升级后会将新的依赖版本更新到go.mod * 也可以使用 go get -u 升级所有依赖

replace

go.mod中使用replace替换成引用的库。

  • 需要FQ访问,替换成国内的包;
  • 团队维护公共包,项目需要本地调试;(可以结合 go mod vendor使用)
module gitlab.mw.com/data/shop

go 1.13

require (
	github.com/pkg/errors v0.9.1
)
replace (
	github.com/pkg/errors v0.9.1 =>  gitlab.mw.com/data/shop/errors
)
posted @ 2021-02-10 20:47  walkingSun  阅读(110)  评论(0编辑  收藏  举报
**/