vgo 简介:

vgo 是新一代的go项目包管理工具,在 go 1.11中已经支持,现在很多第三方库都使用vgo作为包管理工具,比如 echo框架
vgo官方介绍:wiki

使用环境:

  1. go 1.11及以上版本
  2. 在最新的go 版本中(1.12.4) 仍然需要配置环境变量 GO111MODULE=on 才能使用
  3. 下面所述的所有环境变量的设置都依赖于vgo未正式发布,仍然需要手动设置环境变量才能使用

使用vgo创建项目

本文以JetBrains公司的GoLand使用为例,版本为2019.1,2018.3的版本也有这个功能
Go Modules( vgo ) 的介绍与使用

项目目录中可以看到有个go.mod的文件 初始包含了module和go版本信息
Go Modules( vgo ) 的介绍与使用
当项目中需要获取第三方库时 仍然可以使用go get命令 ,比如 go get github.com/labstack/echo/v4 ,默认的将会拉取最新的包,如果需要指定版本则在后面加上@+版本号 比如,go get github.com/labstack/echo/[email protected] ,当你尝试用这条命令拉取时就会发现报错,应为echo的v4.15的包依赖 golang.org/x/ 下的包,由于某些原因拉取不到,这个时候就要介绍下go.mod下的三个关键字了

好了,介绍完上面的三个关键字,现在就能编辑我们的go.mod文件了,内容如下: 后面的v0.0.0-20190531175056-4c3a928424d2 其实是 latest
Go Modules( vgo ) 的介绍与使用
编辑完go.mod文件,保存更新后 ,项目目录下回多一个go.sum的文件,该文件用于记录每个依赖库的版本和哈希值。
第三方依赖包会保存到gopath->pkg->mod 目录下

项目发布

项目完成以后需要发布到服务器,有几点要注意,把项目上传到服务器以后直接go build 会报错,找不到依赖包,这是因为服务器上没有设置环境变量 export GO111MODULE=on 即可,和dep的包管理类似,第三方依赖包需要使用dep save命令将项目依赖保存到vender目录下,而vgo会在go build时,如果本地没有依赖库会自动拉取需要的依赖库。
注意:如果使用的是docker,需要在Dockerfile中设置环境变量 ENV GO111MODULE=on 否则项目报错

相关文章:

  • 2021-09-05
  • 2021-12-27
  • 2018-11-06
  • 2021-06-17
  • 2022-12-23
  • 2021-06-05
猜你喜欢
  • 2021-12-18
  • 2021-07-30
  • 2019-01-20
  • 2021-10-14
  • 2021-09-27
  • 2021-09-12
  • 2022-12-23
相关资源
相似解决方案