关于go get的小知识

wx5e1abbbb0a5e5 · · 128 次点击 · · 开始浏览    

1. go get与go install

可能有同学在刚使用go get的时候会有一个小疑问,就是有些包go get下来的时候,有些包会“下载”一个二进制包在GOPATH/bin目录下,有些又没有。其实这是因为go get这个命令会分两步走,一个是下载源码包,一个是执行go install。所以有些包里面有main包的时候,下载完源码包就可以被go install编译放在GOPATH/bin目录下。来看个小例子。

goget.png

起先,我的GOPATH/bin目录下没有something.exe,在执行"go get -v -u github.com/TomatoMr/something"之后,$GOPATH/bin目录就有something.exe了。

2. go get与go mod

再来看看go get与go mod的关系。这两者其实没有什么关系,一般来讲,在项目下面有了go.mod文件,执行了"go mod tidy",源码包并不是下载在GOPATH/src下面了,而是下载在GOPATH/pkg下,这跟go get不一样,"go mod tidy"也不会执行"go install"。
但是,如果你的项目用了go mod, 并且你是在你的项目下面执行"go get"的话,可能会遇到"missing dot in first path element"的报错,所以,用了go mod的话,尽量就少用go get,当然要看具体情况,如果你需要下载的时候也安装,就用go get。

3. go get常用参数

-v 显示操作流程的日志及信息,方便检查错误
-u 下载丢失的包,但不会更新已经存在的包
-d 只下载,不安装
-insecure 允许使用不安全的 HTTP 方式进行下载操作


欢迎关注我们的微信公众号,每天学习Go知识

本文来自:51CTO博客

感谢作者:wx5e1abbbb0a5e5

查看原文:关于go get的小知识

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:muxilin131420 备注:入群;或加QQ群:815126783

128 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传