window下golang包管理glide使用说明
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了window下golang包管理glide使用说明,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2142字,纯文字阅读大概需要4分钟。
内容图文
![window下golang包管理glide使用说明](/upload/InfoBanner/zyjiaocheng/1147/21717873cba445e594e2279519a105a3.jpg)
golang是一门简洁高效的开发 语言,但是包管理一直是一个痛点,如图 :
- 很多开源项目特别是github.com中的大量应用golang.org和google.golang.org中的源码,且由于被墙的原因也会导致各种不顺利,复制GOPATH里内容在团队人比较多的时候较复杂
- 包之前关系复杂,无法确切的知道自己包里引用哪些项目源,甚至可能有 一些被误删导致的问题
- 无法准确管理引用包源的版本,可能会导致一些项目编译不通过
不像java里有maven或者jar、donet里有dll文件等等,让使用方方便很多 。
go在1.5版本引入了vendor属性(默认关闭,需要设置go环境变量GO15VENDOREXPERIMENT=1),并在1.6版本中默认开启了vendor属性。
vendor就是go编译时,优先从项目源码树根目录下的vendor目录查找代码(可以理解为切了一次GOPATH),如果vendor中有,则不再去GOPATH中去查找。
当然golang的包管理也有好几种方案(godep/govendor/gvt等等),模式基本上也都差不多,相比而言glide更方便,所以着重介绍glide的使用
-
glide安装
go get github.com/Masterminds/glide
- 配置glide的环境变量,方便后面使用glide指令
-
切换到项目根目录下用glide init 指令初始化yaml文件
glide init
初始化后完整目录如下
glide.yaml的内容,因为main.go里暂时只有fmt.Println("hello world")package: github.com/nickchou/glide-go import: []
-
导一个包测试
glide get github.com/mattn/go-adodb
如果报以下错(如图):
Unable to export dependencies to vendor directory: Error moving files: exit status 1. output:
解决办法: 找到%GOPATH%/src/github.com/Masterminds/glide/path/winbug.go 文件,修改约75行处func CustomRename(o, n string) error { // Handking windows cases first if runtime.GOOS == "windows" { msg.Debug("Detected Windows. Moving files using windows command") //cmd := exec.Command("cmd.exe", "/c", "move", o, n) cmd := exec.Command("cmd.exe", "/c", "xcopy /s/y", o, n+"\\") //新增这一行代码 output, err := cmd.CombinedOutput() if err != nil { return fmt.Errorf("Error moving files: %s. output: %s", err, output) } return nil } else if detectWsl() { cmd := exec.Command("mv", o, n) output, err2 := cmd.CombinedOutput() msg.Debug("Detected Windows Subsystem for Linux. Removing files using subsystem command") if err2 != nil { return fmt.Errorf("Error moving files: %s. output: %s", err2, output) } return nil } return os.Rename(o, n) }
-
重新导入包,如果main函数里用到了此包,且包里含有其他项目源,也会一并下载 注意被墙,特别是项目源在golang.org上的
glide get github.com/mattn/go-adodb
导入单个包源
glide get --all-dependencies -s -v github.com/mattn/go-adodb
-
根据指定版本号导入项目,如
glide get github.com/go-sql-driver/mysql#v1.2
-
安装完毕,实际使用import的时候会优先在vendor目录下找代码源
原文:https://www.cnblogs.com/nickchou/p/8955180.html
内容总结
以上是互联网集市为您收集整理的window下golang包管理glide使用说明全部内容,希望文章能够帮你解决window下golang包管理glide使用说明所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。