官方golang包管理神器

怎么用

找到你的项目,直接执行

go mod init main.go
go.mod
$ cat go.mod
module collector_go

go 1.14

require (
 github.com/gogo/protobuf v1.3.1 // indirect
 github.com/golang/protobuf v1.4.2
 google.golang.org/protobuf v1.23.0
)
buildrun
go build -o ./collector_go main.go

有一个小前提

golang=1.12GO111MODULEonauto
go env GO111MODULE=on

他解决了什么问题

原来的包管理方式

Go$GOPATH/srcsrc

新的包管理模式解决了以上问题

$GOPATH/srcgo.modreplace

tips

Q1: 我的包下哪去了

$GOPATH/pkg/mod
GO111MODULEautoonoff
autosrcongo.modoffsrc

Q3: 依赖包中的地址失效了怎么办比如 golang. org/x/… 下的包都无法下载怎么办

go.modreplace
replace golang.org/x/text = github.com/golang/text latest
gogithub.com/golang/textgolang.org/x/text
go mod
go.modmodule mainmainimport "项目名/模块名"
Go 1.13