gopath和vendor的依赖管理
这俩其实挺坑的,特别的不好用,已经进入的了go语言历史的垃圾堆,大家知道一下就好,因为现在go项目都是利用go mod 来做第三方库的管理。 之前的gopath和vendor不好用 主要是对项目的结构有要求,设置繁琐,无法区分同一库不同版本号等等多种原因。
go mod 依赖管理
在这之前 我们要看下goland的基本设置
一定不要遗漏这一步 不然goland 总是刷新不了你下载的第三方库,即使你在命令行里面设置了export的go proxy也没用,还是会出现拉到第三方库但是ide中 无法检索到的错误
github.com/uber-go/zap 可以用这个库 来体会一下 go语言的依赖管理
直接go get 命令 下载这个第三方库
这里可以看到我们下载的第三方库到底在哪里
当然也可以指定第三方库的版本
不指定版本的时候总会拉取最新的版本
还可以清理一下 有点类似于 maven clean
多main入口的情况下 官方的目录设置
go get golang.org/x/tools
前面的文章提到过,go语言一个目录下 只能有一个main函数,那有时候我们需要有多个main函数的go项目怎么办? 当然是多个目录啦,虽然这个方法很土,但是很好用。
可以看下官方就是这么管理的。多个目录下 多个go文件都有自己的main函数
go build 与 go install
我们在这个go build的时候 会自动生成 可执行文件。
看看多目录的时候会发生什么?
简单看下目录结构 其实就是2个目录下 各有一个具有main函数的 go文件
我想一次性编译出来,不想分别cd到对应目录 应该怎么做?
这里能看出来 我们编译是成功了,但是可执行文件呢? 哪去了?其实针对于这种情况 go build 也只是能检测下是否编译成功而已,真正要拿到编译后的产物 要用到go install 命令
图中可以清晰的看到 编译后的产物 都在你 gopath的bin目录下 且编译后的可执行文件的名称就是你文件路径的名称