加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

如何用GVM管理Go项目

发布时间:2019-10-15 10:52:59 所属栏目:Windows 来源:Chris Collins
导读:副标题#e# 使用 Go 版本管理器管理多个版本的 Go 语言环境及其模块。 Go 语言版本管理器(GVM)是管理 Go 语言环境的开源工具。GVM pkgsets 支持安装多个版本的 Go 并管理每个项目的模块。它最初由 Josh Bussdieker 开发,GVM(像它的对手 Ruby RVM 一样)

当 GVM 被告知使用新版本时,它会更改为新的 $GOPATH,默认 gloabl pkgset 应用于该版本:

  1. [chris@marvin]$ echo $GOPATH
  2. /home/chris/.gvm/pkgsets/go1.12.9/global
  3.  
  4. [chris@marvin]$ gvm pkgset list
  5.  
  6. gvm go package sets (go1.12.9)
  7.  
  8. =>  global

尽管默认情况下没有安装额外的包,但是全局 pkgset 中的包对于使用该特定版本的 Go 的任何项目都是可用的。

现在,假设你正在启用一个新项目,它需要一个特定的包。首先,使用 GVM 创建一个新的 pkgset,名为 introToGvm:

  1. [chris@marvin]$ gvm pkgset create introToGvm
  2.  
  3. [chris@marvin]$ gvm pkgset use introToGvm
  4. Now using version go1.12.9@introToGvm
  5.  
  6. [chris@marvin]$ gvm pkgset list
  7.  
  8. gvm go package sets (go1.12.9)
  9.  
  10.     global
  11. =>  introToGvm

如上所述,pkgset 的一个新目录被添加到 $GOPATH

  1. [chris@marvin]$ echo $GOPATH
  2. /home/chris/.gvm/pkgsets/go1.12.9/introToGvm:/home/chris/.gvm/pkgsets/go1.12.9/global

将目录更改为预先设置的 introToGvm 路径,检查目录结构,这里使用 awkbash 完成。

  1. [chris@marvin]$ cd $( awk -F':' '{print $1}' <<< $GOPATH )
  2. [chris@marvin]$ pwd
  3. /home/chris/.gvm/pkgsets/go1.12.9/introToGvm
  4.  
  5. [chris@marvin]$ ls
  6. overlay pkg src

请注意,新目录看起来很像普通的 $GOPATH。新的 Go 包使用同样的 go get 命令下载并正常使用,且添加到 pkgset 中。

例如,使用以下命令获取 gorilla/mux 包,然后检查 pkgset 的目录结构:

  1. [chris@marvin]$ go get github.com/gorilla/mux
  2. [chris@marvin]$ tree
  3. [chris@marvin introToGvm ]$ tree
  4. .
  5. ├── overlay
  6. │ ├── bin
  7. │ └── lib
  8. │ └── pkgconfig
  9. ├── pkg
  10. │ └── linux_amd64
  11. │ └── github.com
  12. │ └── gorilla
  13. │ └── mux.a
  14. src/
  15. └── github.com
  16. └── gorilla
  17. └── mux
  18. ├── AUTHORS
  19. ├── bench_test.go
  20. ├── context.go
  21. ├── context_test.go
  22. ├── doc.go
  23. ├── example_authentication_middleware_test.go
  24. ├── example_cors_method_middleware_test.go
  25. ├── example_route_test.go
  26. ├── go.mod
  27. ├── LICENSE
  28. ├── middleware.go
  29. ├── middleware_test.go
  30. ├── mux.go
  31. ├── mux_test.go
  32. ├── old_test.go
  33. ├── README.md
  34. ├── regexp.go
  35. ├── route.go
  36. └── test_helpers.go

如你所见,gorilla/mux 已按预期添加到 pkgset $GOPATH 目录中,现在可用于使用此 pkgset 项目了。

GVM 让 Go 管理变得轻而易举

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读