go 1.13 module学习小记

 

go 1.13中默认启用了Modules进行依赖管理,在学习Modules过程中遇见了一些坑,特此记录。

 

首先 go mod init xxx 命令用来初始化依赖管理,这里的xxx是新建项目的包名。

 

replace指令用来替换导入本地包,在替换时=>两侧的空格是不可省略的,替换语法是 go mod init xxx 这里初始化声明的xxx包名在某个目录搜索,具体如下:

go mod init example.com/m  //此处指定包名为example.com/m,假定这个命令在/Users/use/xmodule下执行的,也即在/Users/use/xmodule下新建项目

require example.com/m  v0.0.0      //此处引入依赖,版本号不可省略
replace example.com/m => /Users/use/xmodule  //此处替换上面要引入的依赖,否则会去网络上拉取。注意=>两侧有空格,左侧是init初始化时指定的包名,右侧是这个包所在的实际目录
 
启用了Modules依赖管理的项目,在go build 或者go run的时候会自动拉取下载依赖。下载的依赖会放在$GOPATH/pkg/mod/目录下,网上有篇“拜拜了,GOPATH君”这样的文章,比较误导人,可以看到GOPATH还是有用的,并不是彻底被废弃了,至少还会用来存储依赖包。
posted @ 2020-09-22 17:37  impluse  阅读(201)  评论(0编辑  收藏  举报