gomod
gomod是go 1.1之后引入的一个模块化软件 本身go开发者的想法是希望将go的项目全部放入$GOPATH/src
,同时下载的第三库也是放置于此,又因为在¥GOPATH/src下任何工程都可以互相导入,所以势必会引起冲突,引入gomod让我们可以在任何文件夹下运行go程序
比如python,下载的所有第三方库都都放在site-package
,所以我们也可以$GOPATH/src
作为第三方库的下载文件夹,然后使用gomod,在其他任意文件夹下创建go工程(有趣的是,如果在$GOPATH/src
下的工程使用gomod还会报错),这是开发者有意而为之的,当然也可以通过额外设置允许它,但是吃力不讨好
极速入门:
1
2
3
4
5
6
7
~/test $
~/test $ go mod init haha
go: creating new go.mod: module haha
~/test $ cat go.mod
module haha
go 1.12
在test目录下使用go mod init <mod_name>
新建go.mod文件,在此文件夹使用go env
可以发现gomod被置为了~/test
,然后go.mod只有一行module名称和go的版本号
go.mod不需要自己手动编写,在build或者run的使用会自动创建。使用ide或者vscode能在文件中使用import时就自动更新
同时在编译后还会产生一个go.sum文件,这个文件记录了所依赖项目的版本