Golang使用Go Module的方式创建项目并管理依赖包

参考链接

https://juejin.im/post/5c9c8c4fe51d450bc9547ba1
https://segmentfault.com/a/1190000016146377

要求

  • Golang版本要求:1.11+
  • go env GO111MODULE=on
  • 下依赖可能会遇到被墙的问题,可以通过设置代理go env GOPROXY=下面代理的其中一个,我使用的是七牛云提供的,感谢七牛云

htps://goproxy.io
https://goproxy.cn (七牛云)
https://mirrors.aliyun.com/go…(阿里云)
https://mirrors.cloud.tencent…(腾讯云)
https://athens.azurefd.net(微软)
https://gocenter.io
或者自建模块代理工具:
https://github.com/goproxyio/…
https://github.com/goproxy/go…
https://github.com/gomods/athens

使用go module,项目必须要有go.mod文件,我的理解就是依赖清单,它是一个关键性文件,所有的依赖包都通过它来管理

官方说明:除了go.mod之外,go命令还维护一个名为go.sum的文件,其中包含特定模块版本内容的预期加密哈希
go命令使用go.sum文件确保这些模块的未来下载检索与第一次下载相同的位,以确保项目所依赖的模块不会出现意外更改,无论是出于恶意、意外还是其他原因。 go.mod和go.sum都应检入版本控制。
go.sum 不需要手工维护,所以可以不用太关注。

创建mod文件

命令 go mod init <模块名>,模块名可选,如果当前项目不是在GOPATH下,需要提供模块名,一般是根目录名,生成的文件内容
注意,项目的子目录的依赖都会组织于根目录的go.mod,即一个项目只需要一个go.mod

module test2

go 1.14

其中test2为包名,go 1.14指出了当前go sdk版本

另外,如果IDE是Goland,在创建新项目时,选择左边的Go Modules即可创建一个已经配置好go.mod文件的项目
Golang使用Go Module的方式创建项目并管理依赖包_第1张图片

尝试引入依赖

随便挑了一个第三方库尝试(github.com/boltdb/bolt)
go get github.com/boltdb/bolt,下载完成后,打开go.mod

module test2

go 1.14

require (
	github.com/boltdb/bolt v1.3.1 // indirect
)

require里的内容就是我们的第三方包,v1.3.1是包版本
下载的包被放在了$GOPATH/pkg/mod下,项目会自动寻找并引用它,在External Libraries可以看到当前test2(当前模块名)项目所引用的包
Golang使用Go Module的方式创建项目并管理依赖包_第2张图片
然后就可以使用了
Golang使用Go Module的方式创建项目并管理依赖包_第3张图片

你可能感兴趣的:(go)