注意go mod init的位置
如果有三级目录,如 goim/comet/db goim/logic/db
在goim/login/main中是可以直接 import ("goim/comet/db"),不管vscode打开的路径是 goim还是goim/logic,和vscode的路径没有关系,经常饮用不到src/ 上级目录下的子包,是只和go mod init的位置的位置有关, go mod init的位置,是根,一般在src/goim下go mod
1.go vendor
创建项目之后,在项目根目录下
govendor init,自动生成vendor
文件夹(存放你项目需要的依赖包)和vendor.json
文件
然后编写代码,再将依赖使用go get下载到src目录下
在本项目的根目录下执行 govendor add +external
则依赖的包会被拷贝到vendor目录下(即便删除gopath下的目录,也不受影响),vendor.json也会添加相应依赖
有新的依赖被添加时,再执行 govendor add +external
2.go module(编辑/etc/profile)
export GO111MODULE=on
go mod init
go list -m -json all 显示所有Import库信息
windows 下在环境变量下添加变量 GO111MODULE on或者off
或者设置为 auto 模式,这样在 GOPATH 路径下的项目可以不使用 module 机制。
export GO111MODULE=auto