gomod
一般来说,正常书写代码是不会遇到所谓的依赖管理的问题
但是,意外就是我改了一下module的名字,然后我就开始了解了一下golang的mod管理
首先我看了一下我本地的目录:
src这里存放的是源代码的目录,但是真实情况是,我们写真实的项目并不会像java一样永远只是在
src下创建新的项目,而是可以在另外的目录下创建项目,因此个人感觉这个项目是没什么用的,特别是使用了gomod的管理模式以后pkg用于存放编译后的包文件,随着Go模块(Go Modules)的普及,依赖管理变得更加简单,
pkg目录的使用也在逐渐减少,因为Go Modules会直接下载依赖到~/go/pkg/mod目录下。bin这个目录用来存放编译后的可执行文件,这个目录不是Go模块系统的一部分,而是项目构建过程中可能产生的输出目录。
SDK软件开发工具包,这个其实就是包,对这么理解通俗易懂
我们可以在go官网下载sdk或者在goland上下载
settings->goroot->➕

然后我们基本上会有这么几个名词
goroot#
寻找sdk的路径,goland需要寻找sdk存在在哪里,就需要知道他相应的路径,不然,go的基本关键词啥的都无法被识别
gopath#
它指定了Go工作区的根目录。Go工作区是包含Go代码的目录,它组织了项目的源代码、编译的二进制文件和库文件等

我这里的
gopath = user/username/go, 再参照我的上一张图就可以看出,bin/pkg/src是使用gopath导致的,但是我们使用gomod的时候,并不会把项目的源代码放在gopath下在Go 1.11之前,依赖管理是通过
GOPATH来实现的,但在Go 1.11及以后的版本中,Go引入了go mod,也就是说他基本上被淘汰了gomod#
开启 module:
1
go env -w GO111MODULE=on
我们开始使用 gomod 来管理第三方库,在GOPATH/pkg/mod文件夹里面
创建 module:
1
go mod init
然后使用
go get命令就行了,-u可以为你把依赖更新到最新部分go get
go get命令现在主要用于添加、更新或删除go.mod文件中的依赖项,只下载包而不进行编译和安装go install
go install用于编译并安装指定的包,包括生成的可执行文件。go download
go mod download命令用于下载当前模块的依赖项到本地缓存,但不执行安装
清理整理 module:
1
go mod tidy
最后的结果:
1
2
3
4
5module modtest
go 1.15
require github.com/gin-gonic/gin v1.5.0执行
go download后会多出一个go.sum文件,该文件基本上用来记录包版本的关系
总结#
总的来说就是
安装好 sdk — 安装好 goland — 配置好 goroot(一般goland就会给你配好了)
一切🆗
